/// <summary> /// Removes old record and insert newly selected facilities against inspection schedule id /// </summary> /// <param name="selectedFacilities"></param> /// <param name="inspectionScheduleId"></param> /// <param name="email"></param> /// <returns></returns> public bool UpdateInspectionScheduleSite(List <FacilitySiteItems> selectedSites, int inspectionScheduleId, string email) { var inspectionScheduleSiteManager = this.container.GetInstance <InspectionScheduleSiteManager>(); var existingInspectionScheduleSites = inspectionScheduleSiteManager.GetSiteByInspectionScheduleId(inspectionScheduleId); foreach (var item in existingInspectionScheduleSites)// remove previous facilities { inspectionScheduleSiteManager.BatchRemove(item); } inspectionScheduleSiteManager.SaveChanges(); foreach (var site in selectedSites) { InspectionScheduleSite inspectionScheduleFacility = new InspectionScheduleSite(); inspectionScheduleFacility.SiteID = site.SiteId; inspectionScheduleFacility.InspectionScheduleId = inspectionScheduleId; inspectionScheduleFacility.InspectionDate = Convert.ToDateTime(site.InspectionDate); inspectionScheduleFacility.CreatedBy = email; inspectionScheduleFacility.CreatedDate = DateTime.Now; inspectionScheduleSiteManager.Add(inspectionScheduleFacility); } return(true); }
/// <summary> /// Creates a copy of last archived inspection schedule and save in database /// </summary> /// <param name="inspectionScheduleId"></param> /// <param name="email"></param> /// <returns></returns> public InspectionSchedule CloneInspectionSchedule(int inspectionScheduleId, string email) { var inspectionScheduleManager = this.container.GetInstance <InspectionScheduleManager>(); var inspectionScheduleDetailManager = this.container.GetInstance <InspectionScheduleDetailManager>(); var inspectionScheduleSiteManager = this.container.GetInstance <InspectionScheduleSiteManager>(); var inspectionScheduleOld = inspectionScheduleManager.GetById(inspectionScheduleId); InspectionSchedule inspectionSchedule = new InspectionSchedule(); inspectionSchedule.ApplicationId = inspectionScheduleOld.ApplicationId; inspectionSchedule.IsActive = true; inspectionSchedule.IsArchive = false; inspectionSchedule.OrganizationId = inspectionScheduleOld.OrganizationId; inspectionSchedule.InspectionDate = inspectionScheduleOld.InspectionDate; inspectionSchedule.StartDate = inspectionScheduleOld.StartDate; inspectionSchedule.EndDate = inspectionScheduleOld.EndDate; inspectionSchedule.CompletionDate = inspectionScheduleOld.CompletionDate; inspectionSchedule.CreatedDate = DateTime.Now; inspectionSchedule.CreatedBy = email; inspectionSchedule.UpdatedDate = DateTime.Now; inspectionSchedule.IsCompleted = false; inspectionScheduleManager.Add(inspectionSchedule); var inspectionScheduleDetailListOld = GetActiveByInspectionScheduleId(inspectionScheduleOld.Id); foreach (var inspectionScheduleDetailOld in inspectionScheduleOld.InspectionScheduleDetails) { InspectionScheduleDetail inspectionScheduleDetail = new InspectionScheduleDetail(); inspectionScheduleDetail.InspectionScheduleId = inspectionSchedule.Id; inspectionScheduleDetail.AccreditationRoleId = inspectionScheduleDetailOld.AccreditationRoleId; inspectionScheduleDetail.UserId = inspectionScheduleDetailOld.UserId; inspectionScheduleDetail.InspectionCategoryId = inspectionScheduleDetailOld.InspectionCategoryId; inspectionScheduleDetail.SiteId = inspectionScheduleDetailOld.SiteId; inspectionScheduleDetail.IsLead = inspectionScheduleDetailOld.IsLead; inspectionScheduleDetail.IsMentor = inspectionScheduleDetailOld.IsMentor; inspectionScheduleDetail.IsActive = true; inspectionScheduleDetail.IsArchive = false; inspectionScheduleDetail.CreatedDate = DateTime.Now; inspectionScheduleDetail.CreatedBy = email; inspectionScheduleDetailManager.BatchAdd(inspectionScheduleDetail); } inspectionScheduleDetailManager.SaveChanges(); var existingInspectionScheduleSites = inspectionScheduleSiteManager.GetSiteByInspectionScheduleId(inspectionScheduleOld.Id); foreach (var site in existingInspectionScheduleSites) { InspectionScheduleSite inspectionScheduleSite = new InspectionScheduleSite(); inspectionScheduleSite.SiteID = site.SiteID; inspectionScheduleSite.InspectionScheduleId = inspectionSchedule.Id; inspectionScheduleSite.InspectionDate = site.InspectionDate; inspectionScheduleSite.CreatedBy = email; inspectionScheduleSite.CreatedDate = DateTime.Now; inspectionScheduleSiteManager.BatchAdd(inspectionScheduleSite); } inspectionScheduleSiteManager.SaveChanges(); return(inspectionSchedule); }