コード例 #1
0
ファイル: PodController.cs プロジェクト: sahvishal/matrix
        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));
            }
        }
コード例 #2
0
        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);
        }