public ActionResult Edit(PodEditModel podEditModel) { try { podEditModel.Territories = _territoryRepository.GetAllTerritoriesIdNamePair(TerritoryType.Pod); podEditModel.Tests = _testRepository.GetAll(); if (ModelState.IsValid) { var pod = Mapper.Map <PodEditModel, Pod>(podEditModel); var podInDb = _podRepository.GetById(pod.Id); pod.DataRecorderMetaData = podInDb.DataRecorderMetaData; pod.DataRecorderMetaData.DataRecorderModifier = Mapper.Map <OrganizationRoleUserModel, OrganizationRoleUser>(_sessionContext.UserSession.CurrentOrganizationRole); pod.DataRecorderMetaData.DateModified = DateTime.Now; using (var scope = new TransactionScope()) { pod = _podRepository.Save(pod); var podTeam = new List <PodStaff>(); podEditModel.DefaultStaffAssigned.ToList().ForEach(dsa => { var teamMember = Mapper.Map <PodStaffEditModel, PodStaff>(dsa); teamMember.PodId = pod.Id; teamMember.DataRecorderMetaData = new DataRecorderMetaData() { DataRecorderCreator = Mapper.Map <OrganizationRoleUserModel, OrganizationRoleUser>(_sessionContext.UserSession.CurrentOrganizationRole), DateCreated = DateTime.Now }; podTeam.Add(teamMember); }); ((IPodRepository)_podRepository).SavePodTerritories(podEditModel.AssignedTerritories, pod.Id); // Need to check the DefaultPodTeam Issue. podTeam = _podStaffAssignmentRepository.SaveMultiple(podTeam, pod.Id).ToList(); _podService.SavePodRooms(podEditModel.Rooms, pod.Id); scope.Complete(); } var newModel = _podService.GetPodEditModel(podEditModel.Id); newModel.FeedbackMessage = FeedbackMessageModel.CreateSuccessMessage( "The POD was edited successfully. You can edit it for more changes or close this page."); return(View(newModel)); } return(View(podEditModel)); } catch (Exception exception) { podEditModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage("System Error:" + exception); return(View(podEditModel)); } }
public PodEditModel Create(Pod pod, IEnumerable <Territory> territories, IEnumerable <OrderedPair <long, string> > podTerritories, IEnumerable <PodStaff> podStaff, IEnumerable <OrderedPair <long, string> > idNamePairs, IEnumerable <StaffEventRole> eventRoles, IEnumerable <PodRoom> podRooms, IEnumerable <PodRoomTest> podRoomTests, IEnumerable <Test> tests) { var model = new PodEditModel { AssignedToFranchiseeid = pod.AssignedToFranchiseeid, DataRecoderMetaData = pod.DataRecorderMetaData, Description = pod.Description, Id = pod.Id, Name = pod.Name, ProcessingCapacity = pod.ProcessingCapacity, VanId = pod.VanId, AssignedTerritories = territories.Select(t => t.Id), Territories = podTerritories, DefaultStaffAssigned = _staffEditModelFactory.Create(pod.Id, podStaff, idNamePairs, eventRoles), Tests = tests, Rooms = GetPodRoomEditModels(podRooms, podRoomTests), EnableKynIntegration = pod.EnableKynIntegration, IsBloodworkFormAttached = pod.IsBloodworkFormAttached }; return(model); }