четверг, 16 декабря 2010 г.

MVC модель Repository (Клиенты)



 public class ClientRepository
    {
        public int id { get; set; }
        private DataClasses1DataContext data()
        {
            return DataProvider.DataContext();
        }
        private Table<client> Client()
        {
            return data().client;
        }
        public IQueryable<client> GetClients()
        {
            return data().client.OrderBy(t => t.pib).Cast<client>();
        }


        public IQueryable<client> GetClients(client clients)
        {
            return data().client.Select(t => t.id == clients.id).Cast<client>();
        }


        public client GetClient(int clientId)
        {
            return data().client.SingleOrDefault(t => t.id == clientId);
        }


        public IQueryable Search(string name)
        {
            return from cl in data().client
                   where cl.pib.StartsWith(name) 
                   select new
                   {
                       ID=cl.id,
                       ПІБ = cl.pib,
                       Тариф = cl.taruf.name,
                       Ціна_тарифа = cl.taruf.vartist,
                       Кількість_ПК = cl.kilkPC,
                       Дата_підключення = cl.dateConnect,
                       Абоненський_стаж = cl.znuwku.abonStaw,
                       Відсоток_знижки = cl.znuwku.vidsotok
                   };           
        }


        public void DeleteClient(int clientId)
        {
            data().client.DeleteOnSubmit(GetClient(clientId));
            data().SubmitChanges();
        }


        public void UpdateClient(client Client)
        {
            client data = GetClient(Client.id);
            data.id = Client.id;
            data.idTaruf = Client.idTaruf;
            data.pib = Client.pib;
            data.kilkPC = Client.kilkPC;
            data.dateConnect=Client.dateConnect;
            data.numberZnawku = Client.numberZnawku;


            data.abonPlata = Client.abonPlata;
            data.stanClient = Client.stanClient;
            data.summaNaRaxynky = Client.summaNaRaxynky;
            data.idAccount = Client.idAccount;
            DataProvider.DataContext().SubmitChanges();
        }
        public IQueryable GetClientView()
        {
          
            return from cl in data().client                 
                   select new
                   {
                      ID = cl.id,
                      ПІБ=cl.pib,
                      Тариф=cl.taruf.name,
                      Ціна_тарифа=cl.taruf.vartist,
                      Кількість_ПК=cl.kilkPC,
                      Дата_підключення=cl.dateConnect,
                      Абоненський_стаж=cl.znuwku.abonStaw,
                      Відсоток_знижки=cl.znuwku.vidsotok                   
                   };


        }
      
        public int CalculationStaw1()
        {


            DateTime d1 = DateTime.Parse("06.11.2005"), d2 = DateTime.Parse("05.11.2010");
            
            TimeSpan ts = d2.Subtract(d1);
            int p =Convert.ToInt32(ts.TotalDays / 365);
            return p;


        }
        public void CalculationStaw()
        {
            var qvery=data().client;
            int qveryStaw=0;
            int client;
            int t;
            foreach (client p in qvery)
            {
               client = CalculationStawClient(p.dateConnect.Value);
               qveryStaw = (from n in data().znuwku
                            where (n.abonStaw == client)
                            select n).Single().id;
               p.numberZnawku = qveryStaw;               
            } 
        }
        
        public int CalculationStawClient(DateTime date)
        {
            DateTime d1 = DateTime.Today;
            TimeSpan ts = date.Subtract(d1);
            int p = Convert.ToInt32(ts.TotalDays / 365);
            return p;
        }
        public void Save()
        { 
            data().SubmitChanges();   
        }        


        
        int len;
        public int[] idClient()
        {
            int[] Qvery = (from p in data().client
                           select p.id).ToArray();
            len = Qvery.Length;
            return Qvery;
        }
        public int[] IdTarufInClient()
        {
            int[] Qvery = (from p in data().client
                           select p.idTaruf.Value).ToArray();
            return Qvery;
        }
        public bool IdTarufInClientParam(int r)
        {
            bool t=true;
            foreach (int array in IdTarufInClient())
            {
                if (r == array) t = false;
            }
            return t;
        }
       
        public bool IsnueClientTaruf(int t1)
        {
            bool p = true;
            var qvery=from cls in data().client
                                      where t1==cls.idTaruf
                                      select cls;
            if (qvery.Count()== 0) { p = false; }
            return p;
        }
        public string SetTarufClient(int t1,int t2)
        {
            var Qvery = from p in data().client
                        where p.idTaruf == t1
                        select p;
            foreach(client cl in Qvery)
            {
                cl.idTaruf = t2;
            }
            data().SubmitChanges();
            return "Передеденно клієнтів на інший тариф";
        }
        public string Name(int id)
        {
            return (from s in Client()
                    where (s.id == id)
                    select s.pib).Single().ToString();
        }
        public decimal summaRaxynok(int id)
        {
            return (from s in Client()
                    where (s.id == id)
                    select s.summaNaRaxynky).Single().Value;
        }
        public decimal AddSummaRaxynok(decimal summa,int id)
        {
            client cl = Client().Single(o=>o.id==id);
            cl.summaNaRaxynky += summa;
            data().SubmitChanges();
            return cl.summaNaRaxynky.Value;
        }
        public decimal RemoveSummaRaxynok(decimal summa, int id)
        {
            client cl = Client().Single(o => o.id == id);
            cl.summaNaRaxynky -= summa;
            data().SubmitChanges();
            return cl.summaNaRaxynky.Value;
        }
      
    }

Комментариев нет:

Отправить комментарий