/// <summary> /// Saves the Sites /// </summary> /// <param name="sitesDto"></param> /// <returns></returns> public bool SaveSites(List <BusinessModel.BusinessModels.Site> sitesDto) { try { List <DomainModel.DomainModels.Site> sites = new List <DomainModel.DomainModels.Site>(); List <DomainModel.DomainModels.Site> sitesUpdated = new List <DomainModel.DomainModels.Site>(); DomainModel.DomainModels.Site siteModel; foreach (BusinessModel.BusinessModels.Site siteDto in sitesDto) { DomainModel.DomainModels.Site site = _m3pactContext.Site.FirstOrDefault(x => x.SiteId == siteDto.SiteId); if (site != null) { siteModel = site; siteModel.ModifiedDate = DateTime.UtcNow; siteModel.ModifiedBy = userContext.UserId; sitesUpdated.Add(siteModel); } else { siteModel = new DomainModel.DomainModels.Site(); siteModel.CreatedDate = DateTime.UtcNow; siteModel.ModifiedDate = DateTime.UtcNow; siteModel.CreatedBy = userContext.UserId; siteModel.ModifiedBy = userContext.UserId; sites.Add(siteModel); } siteModel.SiteCode = siteDto.SiteCode; siteModel.SiteName = siteDto.SiteName; siteModel.SiteDescription = siteDto.SiteDescription; siteModel.RecordStatus = siteDto.RecordStatus; siteModel.SiteId = siteDto.SiteId; } if (sitesUpdated.Count > 0) { _m3pactContext.Site.UpdateRange(sitesUpdated); } if (sites.Count > 0) { _m3pactContext.Site.AddRange(sites); } if (sitesUpdated.Count > 0 || sites.Count > 0) { _m3pactContext.SaveChanges(); } return(true); } catch (Exception ex) { throw ex; } }
/// <summary> /// To activate or inactivate sites /// </summary> /// <param name="site"></param> /// <returns></returns> public bool ActivateOrInactivateSites(BusinessModel.BusinessModels.Site site) { try { DomainModel.DomainModels.Site repoSite = _m3pactContext.Site.Where(s => s.SiteId == site.SiteId).ToList().FirstOrDefault(); if (repoSite != null) { if (repoSite.RecordStatus == DomainConstants.RecordStatusActive) { repoSite.RecordStatus = DomainConstants.RecordStatusInactive; List <Client> clients = _m3pactContext.Client.Where(c => c.SiteId == repoSite.SiteId && c.IsActive == DomainConstants.RecordStatusActive)?.ToList(); if (clients != null && clients.Count > 0) { foreach (Client c in clients) { c.RecordStatus = DomainConstants.RecordStatusInactive; c.IsActive = DomainConstants.RecordStatusInactive; } _m3pactContext.UpdateRange(clients); } } else { repoSite.RecordStatus = DomainConstants.RecordStatusActive; } _m3pactContext.Update(repoSite); _m3pactContext.SaveChanges(); return(true); } else { return(false); } } catch (Exception ex) { throw ex; } }