public static LocationModel GetLocation(DSModel db, uint locationID)
        {
            if (db == null)
            {
                throw new ArgumentNullException("db");
            }

            return(LocationRepository.GetLocations(db, locationID).FirstOrDefault());
        }
        private static Location InsertLocation(DSModel db, KeyBinder key, LocationModel model, Company company = null)
        {
            Location poco = new Location();

            poco.LocationName = model.LocationName;
            if (model.LocationCode == string.Empty)
            {
                poco.LocationCode = "L" + LocationRepository.PeekLocationCode(db, "L");
            }
            else
            {
                poco.LocationCode = model.LocationCode;
            }

            if (company == null)
            {
                poco.CompanyID = model.CompanyID;
            }
            else
            {
                poco.Company = company;
            }

            poco.LocationAddress = model.LocationAddress;
            poco.LocationPhone   = model.LocationPhone;
            poco.LocationFax     = model.LocationFax;

            if (model.ConfirmationContact.IsChanged)
            {
                poco.ConfirmationContact = ContactRepository.SaveContact(db, key, model.ConfirmationContact);
                key.AddKey(poco.ConfirmationContact, model.ConfirmationContact, poco.ConfirmationContact.GetName(p => p.ContactID));
                key.AddKey(poco.ConfirmationContact, model, poco.ConfirmationContact.GetName(p => p.ContactID), model.GetName(p => p.ConfirmationContactID));
            }
            if (model.InvoiceContact.IsChanged)
            {
                poco.InvoiceContact = ContactRepository.SaveContact(db, key, model.InvoiceContact);
                key.AddKey(poco.InvoiceContact, model.InvoiceContact, poco.InvoiceContact.GetName(p => p.ContactID));
                key.AddKey(poco.InvoiceContact, model, poco.InvoiceContact.GetName(p => p.ContactID), model.GetName(p => p.InvoiceContactID));
            }
            if (model.DispatchContact.IsChanged)
            {
                poco.DispatchContact = ContactRepository.SaveContact(db, key, model.DispatchContact);
                key.AddKey(poco.DispatchContact, model.DispatchContact, poco.DispatchContact.GetName(p => p.ContactID));
                key.AddKey(poco.DispatchContact, model, poco.DispatchContact.GetName(p => p.ContactID), model.GetName(p => p.DispatchContactID));
            }

            poco.TravelPay           = model.TravelPay;
            poco.TravelPayName       = model.TravelPayName;
            poco.LunchTime           = model.LunchTime;
            poco.IsEnabled           = model.IsEnabled;
            poco.IncludeConfirmation = model.IncludeConfirmation;
            db.Add(poco);
            key.AddKey(poco, model, model.GetName(p => p.LocationID));
            return(poco);
        }
        public static LocationModel GetLocation(DSModel db, string locationCode)
        {
            if (db == null)
            {
                throw new ArgumentNullException("db");
            }

            uint locID = db.Locations.Where(l => l.LocationCode == locationCode).Select(l => l.LocationID).FirstOrDefault();

            if (locID == 0)
            {
                return(null);
            }

            return(LocationRepository.GetLocations(db, locID).FirstOrDefault());
        }
        public static List <LocationModel> GetLocationsByCompanies(DSModel db, uint[] companies = null)
        {
            if (db == null)
            {
                throw new ArgumentNullException("db");
            }

            var query = PredicateBuilder.True <Location>();

            if (companies != null && companies.Length > 0)
            {
                query = query.And(q => companies.Contains(q.CompanyID));
            }

            uint[] ids = db.Locations
                         .Where(query)
                         .Select(i => i.LocationID)
                         .ToArray();

            return(LocationRepository.GetLocations(db, ids));
        }
Пример #5
0
        private static void UpdateCompany(DSModel db, KeyBinder key, CompanyModel model)
        {
            Company poco = db.Companies.Where(c => c.CompanyID == model.CompanyID).FirstOrDefault();

            if (poco == null)
            {
                throw new ArgumentException("No company with the specified ID!");
            }

            poco.CompanyID          = model.CompanyID;
            poco.CompanyName        = model.CompanyName;
            poco.CompanyCode        = model.CompanyCode;
            poco.CompanyAddress1    = model.CompanyAddress1;
            poco.CompanyAddress2    = model.CompanyAddress2;
            poco.CompanyCity        = model.CompanyCity;
            poco.CompanyState       = model.CompanyState;
            poco.CompanyPostCode    = model.CompanyPostCode;
            poco.CompanyContactName = model.CompanyContactName;
            poco.CompanyFax         = model.CompanyFax;
            poco.CompanyPhone       = model.CompanyPhone;
            poco.CompanyEmail       = model.CompanyEmail;
            poco.LunchTime          = model.LunchTime;
            poco.TrainingTime       = model.TrainingTime;
            poco.IsEnabled          = model.IsEnabled;

            List <Location> locationsToBeDeleted = poco.Locations.Where(dl => !model.Locations.Any(ml => ml.LocationID == dl.LocationID)).ToList();

            foreach (var del in locationsToBeDeleted)
            {
                db.Delete(del);
                poco.Locations.Remove(del);
            }

            foreach (var ins in model.Locations)
            {
                Location loc = LocationRepository.SaveLocation(db, key, ins, poco);
                poco.Locations.Add(loc);
                key.AddKey(loc, ins, ins.GetName(p => p.LocationID));
            }
        }
Пример #6
0
        private static void InsertCompany(DSModel db, KeyBinder key, CompanyModel model)
        {
            Company poco = new Company();

            poco.CompanyID   = model.CompanyID;
            poco.CompanyName = model.CompanyName;
            if (model.CompanyCode == string.Empty)
            {
                poco.CompanyCode = "C" + CompanyRepository.PeekCompanyCode(db, "C");
            }
            else
            {
                poco.CompanyCode = model.CompanyCode;
            }
            poco.CompanyAddress1    = model.CompanyAddress1;
            poco.CompanyAddress2    = model.CompanyAddress2;
            poco.CompanyCity        = model.CompanyCity;
            poco.CompanyState       = model.CompanyState;
            poco.CompanyPostCode    = model.CompanyPostCode;
            poco.CompanyContactName = model.CompanyContactName;
            poco.CompanyFax         = model.CompanyFax;
            poco.CompanyPhone       = model.CompanyPhone;
            poco.CompanyEmail       = model.CompanyEmail;
            poco.LunchTime          = model.LunchTime;
            poco.TrainingTime       = model.TrainingTime;
            poco.IsEnabled          = model.IsEnabled;

            foreach (var loc in model.Locations)
            {
                Location l = LocationRepository.SaveLocation(db, key, loc, poco);
                poco.Locations.Add(l);
                key.AddKey(l, loc, loc.GetName(p => p.LocationID));
                key.AddKey(poco, loc, loc.GetName(p => p.CompanyID));
            }

            db.Add(poco);

            key.AddKey(poco, model, model.GetName(p => p.CompanyID));
        }
Пример #7
0
        public static CompanyModel GetCompany(DSModel db, uint companyID)
        {
            if (db == null)
            {
                throw new ArgumentNullException("db");
            }

            var poco = db.Companies.Where(c => c.CompanyID == companyID).FirstOrDefault();

            if (poco == null)
            {
                return(null);
            }

            CompanyModel mod = new CompanyModel();

            mod.CompanyID       = poco.CompanyID;
            mod.CompanyName     = poco.CompanyName;
            mod.CompanyCode     = poco.CompanyCode;
            mod.CompanyAddress1 = poco.CompanyAddress1;
            mod.CompanyAddress2 = poco.CompanyAddress2;
            mod.CompanyCity     = poco.CompanyCity;
            mod.CompanyState    = poco.CompanyState;
            mod.CompanyPostCode = poco.CompanyPostCode;
            mod.CompanyFax      = poco.CompanyFax;
            mod.CompanyPhone    = poco.CompanyPhone;
            mod.CompanyEmail    = poco.CompanyEmail;
            mod.LunchTime       = poco.LunchTime;
            mod.TrainingTime    = poco.TrainingTime;
            mod.IsEnabled       = poco.IsEnabled;
            mod.Locations.AddRange(LocationRepository.GetLocationsByCompany(db, companyID));

            mod.IsChanged = false;

            return(mod);
        }
 public static List <LocationModel> GetLocationsByCompany(DSModel db, uint companyID)
 {
     return(LocationRepository.GetLocationsByCompanies(db, new uint[] { companyID }));
 }