public override List <MIDAS.GBX.BusinessObjects.BusinessValidation> Validate <T>(T entity) { BO.SaveLocation saveLocation = (BO.SaveLocation)(object) entity; var result = saveLocation.Validate(saveLocation); return(result); }
public override object Save <T>(T entity) { BO.SaveLocation saveLocationBO = (BO.SaveLocation)(object) entity; if (saveLocationBO.location == null) { return(new BO.ErrorObject { ErrorMessage = "Location object can't be null", errorObject = "", ErrorLevel = ErrorLevel.Error }); } if (saveLocationBO.location.ID == 0) { if (saveLocationBO.addressInfo == null) { return(new BO.ErrorObject { ErrorMessage = "Addressinfo object can't be null", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } if (saveLocationBO.location.ID == 0) { if (saveLocationBO.contactInfo == null) { return(new BO.ErrorObject { ErrorMessage = "Contactinfo object can't be null", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } if (saveLocationBO.location.ID == 0) { if (saveLocationBO.company == null) { return(new BO.ErrorObject { ErrorMessage = "Company object can't be null", errorObject = "", ErrorLevel = ErrorLevel.Error }); } } BO.Location locationBO = saveLocationBO.location; BO.Company companyBO = saveLocationBO.company; BO.AddressInfo addressBO = saveLocationBO.addressInfo; BO.ContactInfo contactinfoBO = saveLocationBO.contactInfo; Location locationDB = new Location(); Company companyDB = new Company(); User userDB = new User(); AddressInfo addressDB = new AddressInfo(); ContactInfo contactinfoDB = new ContactInfo(); #region Location locationDB.id = locationBO.ID; locationDB.Name = locationBO.Name; locationDB.LocationType = System.Convert.ToByte(locationBO.LocationType); locationDB.IsDefault = locationBO.IsDefault; locationDB.IsDeleted = locationBO.IsDeleted.HasValue ? locationBO.IsDeleted : false; #endregion #region Company if (companyBO.ID > 0) { Company company = _context.Companies.Where(p => p.id == companyBO.ID).FirstOrDefault <Company>(); if (company != null) { locationDB.Company = company; _context.Entry(company).State = System.Data.Entity.EntityState.Modified; } else { return new BO.ErrorObject { errorObject = "", ErrorMessage = "Please pass valid Company details.", ErrorLevel = ErrorLevel.Error } }; } #endregion #region Address if (addressBO != null) { addressDB.id = addressBO.ID; addressDB.Name = addressBO.Name; addressDB.Address1 = addressBO.Address1; addressDB.Address2 = addressBO.Address2; addressDB.City = addressBO.City; addressDB.State = addressBO.State; addressDB.ZipCode = addressBO.ZipCode; addressDB.Country = addressBO.Country; //[STATECODE-CHANGE] //addressDB.StateCode = addressBO.StateCode; //[STATECODE-CHANGE] } #endregion #region Contact Info if (contactinfoBO != null) { contactinfoDB.id = contactinfoBO.ID; contactinfoDB.Name = contactinfoBO.Name; contactinfoDB.CellPhone = contactinfoBO.CellPhone; contactinfoDB.EmailAddress = contactinfoBO.EmailAddress; contactinfoDB.HomePhone = contactinfoBO.HomePhone; contactinfoDB.WorkPhone = contactinfoBO.WorkPhone; contactinfoDB.FaxNo = contactinfoBO.FaxNo; if (contactinfoBO.IsDeleted.HasValue) { contactinfoDB.IsDeleted = contactinfoBO.IsDeleted; } } #endregion //Added code to get data in AddressInfo and ContactInfo locationDB.AddressInfo = addressDB; locationDB.ContactInfo = contactinfoDB; if (saveLocationBO.schedule != null) { #region Schedule if (saveLocationBO.schedule != null) { if (saveLocationBO.schedule.ID > 0) { Schedule schedule = _context.Schedules.Where(p => p.id == saveLocationBO.schedule.ID).FirstOrDefault <Schedule>(); if (schedule != null) { locationDB.Schedule = schedule; } else { return new BO.ErrorObject { errorObject = "", ErrorMessage = "Please pass valid Schedule.", ErrorLevel = ErrorLevel.Error } }; } } #endregion } else { //Default schedule Schedule defaultschedule = _context.Schedules.Where(p => p.IsDefault == true).FirstOrDefault <Schedule>(); if (defaultschedule != null) { locationDB.Schedule = defaultschedule; } else { return new BO.ErrorObject { errorObject = "", ErrorMessage = "Please set default schedule in database.", ErrorLevel = ErrorLevel.Error } }; } if (locationDB.id > 0) { //For Update Record //Find Location By ID Location location = _context.Locations.Include("Company").Include("ContactInfo").Include("AddressInfo").Where(p => p.id == locationDB.id).FirstOrDefault <Location>(); if (location != null) { #region Location locationDB.id = locationBO.ID; location.Name = locationBO.Name == null ? location.Name : locationBO.Name; location.LocationType = locationBO.LocationType == null ? location.LocationType : System.Convert.ToByte(locationBO.LocationType); location.IsDefault = locationBO.IsDefault; location.IsDeleted = locationBO.IsDeleted == null ? locationBO.IsDeleted : locationDB.IsDeleted; location.UpdateDate = locationBO.UpdateDate; location.UpdateByUserID = locationBO.UpdateByUserID; #endregion #region AddressInfo location.AddressInfo.CreateByUserID = location.CreateByUserID; location.AddressInfo.CreateDate = location.CreateDate; if (locationBO.UpdateByUserID.HasValue) { location.AddressInfo.UpdateByUserID = locationBO.UpdateByUserID.Value; } location.AddressInfo.UpdateDate = DateTime.UtcNow; location.AddressInfo.Name = addressBO.Name; location.AddressInfo.Address1 = addressBO.Address1; location.AddressInfo.Address2 = addressBO.Address2; location.AddressInfo.City = addressBO.City; location.AddressInfo.State = addressBO.State; location.AddressInfo.ZipCode = addressBO.ZipCode; location.AddressInfo.Country = addressBO.Country; //[STATECODE-CHANGE] //location.AddressInfo.StateCode = addressBO.StateCode; //[STATECODE-CHANGE] location.AddressInfo.UpdateDate = addressBO.UpdateDate; location.AddressInfo.UpdateByUserID = addressBO.UpdateByUserID; #endregion #region Contact Info location.ContactInfo.CreateByUserID = location.CreateByUserID; location.ContactInfo.CreateDate = location.CreateDate; if (locationBO.UpdateByUserID.HasValue) { location.ContactInfo.UpdateByUserID = locationBO.UpdateByUserID.Value; } location.ContactInfo.UpdateDate = DateTime.UtcNow; location.ContactInfo.Name = contactinfoBO.Name; location.ContactInfo.CellPhone = contactinfoBO.CellPhone; location.ContactInfo.EmailAddress = contactinfoBO.EmailAddress; location.ContactInfo.HomePhone = contactinfoBO.HomePhone; location.ContactInfo.WorkPhone = contactinfoBO.WorkPhone; location.ContactInfo.FaxNo = contactinfoBO.FaxNo; location.ContactInfo.UpdateDate = contactinfoBO.UpdateDate; location.ContactInfo.UpdateByUserID = contactinfoBO.UpdateByUserID; #endregion #region Schedule if (saveLocationBO.schedule != null) { if (saveLocationBO.schedule.ID > 0) { Schedule schedule = _context.Schedules.Where(p => p.id == saveLocationBO.schedule.ID).FirstOrDefault <Schedule>(); if (schedule != null) { location.Schedule = schedule; } else { return new BO.ErrorObject { errorObject = "", ErrorMessage = "Please pass valid Schedule.", ErrorLevel = ErrorLevel.Error } }; } } #endregion _context.Entry(location).State = System.Data.Entity.EntityState.Modified; } } else { locationDB.CreateDate = companyBO.CreateDate; locationDB.CreateByUserID = companyBO.CreateByUserID; addressDB.CreateDate = companyBO.CreateDate; addressDB.CreateByUserID = companyBO.CreateByUserID; contactinfoDB.CreateDate = companyBO.CreateDate; contactinfoDB.CreateByUserID = companyBO.CreateByUserID; locationDB.AddressInfo = addressDB; locationDB.ContactInfo = contactinfoDB; _dbSet.Add(locationDB); } _context.SaveChanges(); var res = Convert <BO.Location, Location>(locationDB); return((object)res); }