public Client getClientByUsername(string username)
        {
            CarpoolingDAL.Client cl = new CarpoolingDAL.Client();
            try {
                var query = db.Clients.Where(o => o.username == username).First();
                cl = query as CarpoolingDAL.Client;
            } catch (Exception) {
                cl = null;
            }

            return RepositoryUtility.createClientFromDALClient(cl);
        }
        public Client getClientByUsername(string username)
        {
            CarpoolingDAL.Client cl = new CarpoolingDAL.Client();
            try {
                var query = db.Clients.Where(o => o.username == username).First();
                cl = query as CarpoolingDAL.Client;
            } catch (Exception) {
                cl = null;
            }

            return(RepositoryUtility.createClientFromDALClient(cl));
        }
        public Client getClientByEmail(string email)
        {
            CarpoolingDAL.Client cl = new CarpoolingDAL.Client();
            try {
                var query = db.Clients.Where(o => o.email == email).First();
                cl = query as CarpoolingDAL.Client;
            } catch (Exception) {
                cl = null;
            }

            return RepositoryUtility.createClientFromDALClient(cl);
        }
 public void removeClient(Client client)
 {
     try {
         CarpoolingDAL.Client cl = db.Clients.Single(o => o.idClient == client.Id);
         db.Clients.DeleteOnSubmit(cl);
         db.SubmitChanges();
     } catch (Exception) {
         //return false;
     }
     CarpoolingDAL.Route r = new CarpoolingDAL.Route();
     //return true;
 }
 public bool existClient(string clientUsername)
 {
     CarpoolingDAL.Client oldOne = db.Clients.Single(o => o.username == clientUsername);
     if (oldOne != null)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 public void addResource(Resource resource, Client client)
 {
     try {
         db.Resources.InsertOnSubmit(RepositoryUtility.createDALResourceFromResource(resource, client));
         db.SubmitChanges();
     } catch (Exception) {
         //TODO saznaj koje su iznimke
         //iznimka se generira ako se narusi bilo koje pravilo vezano uz primary key ili foreign key. Znači, iznimka se
         //generira ako se pokuša dodati osoba koja ima JMBAG koji koristi neka druga osoba, zatim ako se pod osoba.sifUloga
         //stavi neki broj kojeg nema u tablici Uloga, itd..
         //return false;
     }
     //return true;
 }
 public void addFirmRoute(Route route, Client client)
 {
     try {
         CarpoolingDAL.FirmRoute fr = new FirmRoute();
         fr.idClient = client.Id;
         fr.idRoute = route.Id;
         db.FirmRoutes.InsertOnSubmit(fr);
         db.SubmitChanges();
     } catch (Exception) {
         //TODO saznaj koje su iznimke
         //iznimka se generira ako se narusi bilo koje pravilo vezano uz primary key ili foreign key. Znači, iznimka se
         //generira ako se pokuša dodati osoba koja ima JMBAG koji koristi neka druga osoba, zatim ako se pod osoba.sifUloga
         //stavi neki broj kojeg nema u tablici Uloga, itd..
         //return false;
     }
     //return true;
 }
        public void updateClient(Client client)
        {
            try {
                RouteRepository      rr     = RouteRepository.getInstanca();
                ResourceRepository   rer    = ResourceRepository.getInstanca();
                CarpoolingDAL.Client oldOne = db.Clients.Single(o => o.idClient == client.Id);
                oldOne.contactNumber = client.ContactNumber;
                oldOne.email         = client.Email;
                oldOne.name          = client.Name;
                oldOne.notes         = client.Notes;
                oldOne.password      = client.Password;
                oldOne.surname       = client.Surname;
                oldOne.username      = client.Username;
                foreach (Route item in client.getAllFirmRoutes())
                {
                    if (rr.existFirmRoute(item.Id, client.Id))
                    {
                        rr.updateRoute(item);
                    }
                    else
                    {
                        rr.addFirmRoute(item, client);
                    }
                }
                foreach (Resource item in client.getAllResources())
                {
                    if (rer.existResource(item.Id))
                    {
                        rer.updateResource(item);
                    }
                    else
                    {
                        rer.addResource(item, client);
                    }
                }
                db.SubmitChanges();
            } catch (Exception) {
                //return false;
            }

            //return true;
        }
        public void removeFirmRoute(Route route, Client client)
        {
            try {
                CarpoolingDAL.FirmRoute frt = db.FirmRoutes.Single(o => o.idClient == client.Id && o.idRoute == route.Id);
                db.FirmRoutes.DeleteOnSubmit(frt);
                db.SubmitChanges();
            } catch (Exception) {
                //return false;
            }

            //return true;
        }
        public List<Resource> getResourceOfClient(Client client)
        {
            List<Resource> listMemRes = new List<Resource>();
            var resources = db.Resources.Where(s => s.owner == client.Id);

            foreach (CarpoolingDAL.Resource res in resources) {
                listMemRes.Add(RepositoryUtility.createResourceFromDALResource(res as CarpoolingDAL.Resource));
            }
            return listMemRes;
        }
 partial void DeleteClient(Client instance);
 partial void UpdateClient(Client instance);
 partial void InsertClient(Client instance);
        public void updateClient(Client client)
        {
            try {
                RouteRepository rr = RouteRepository.getInstanca();
                ResourceRepository rer = ResourceRepository.getInstanca();
                CarpoolingDAL.Client oldOne = db.Clients.Single(o => o.idClient == client.Id);
                oldOne.contactNumber = client.ContactNumber;
                oldOne.email = client.Email;
                oldOne.name = client.Name;
                oldOne.notes = client.Notes;
                oldOne.password = client.Password;
                oldOne.surname = client.Surname;
                oldOne.username = client.Username;
                foreach (Route item in client.getAllFirmRoutes()) {
                    if (rr.existFirmRoute(item.Id, client.Id)) {
                        rr.updateRoute(item);
                    } else {
                        rr.addFirmRoute(item, client);
                    }
                }
                foreach (Resource item in client.getAllResources()) {
                    if (rer.existResource(item.Id)) {
                        rer.updateResource(item);
                    } else {
                        rer.addResource(item, client);
                    }
                }
                db.SubmitChanges();
            } catch (Exception) {
                //return false;
            }

            //return true;
        }
 public void removeClient(Client client)
 {
     try {
         CarpoolingDAL.Client cl = db.Clients.Single(o => o.idClient == client.Id);
         db.Clients.DeleteOnSubmit(cl);
         db.SubmitChanges();
     } catch (Exception) {
         //return false;
     }
     CarpoolingDAL.Route r = new CarpoolingDAL.Route();
     //return true;
 }