コード例 #1
0
        public int SaveProjectSummary(ProjectStatus ProjectStatus, IList <ProjectSummary> SprintDetails, IList <ProjectResourceUtilization> ProjectResourceDetails,
                                      IList <ProjectComplaint> ProjectComplaintDetails, IList <PaymentDetails> paymentDetails, IList <ChangeRequestDetails> changeRequestDetails,
                                      IList <InfrastructureDetails> infrastructureDetails, string userName, string tabsPosted)
        {
            int resultStatus         = 0;
            int resultResource       = 0;
            int resultComplaint      = 0;
            int resultPayment        = 0;
            int resultChangeRequest  = 0;
            int resultInfrastructure = 0;

            //according to the tabs the data will be posted
            using (TransactionScope scope = new TransactionScope())
            {
                //Fetch the weekid  for week master table
                int weekId = _genericService.GetWeekIdFromMasterTable(ProjectStatus.WeekId, DateTime.Now.Year);

                CheckTabValues(tabsPosted);

                // Status
                if (tabPostedSummary == true)
                {
                    resultStatus = SaveProjectStatus(ProjectStatus, weekId, userName);
                }

                // Sprint
                if (tabPostedSprint == true)
                {
                    SaveSprintDetails(ProjectStatus, SprintDetails, userName, weekId);
                }

                // Resource
                if (tabPostedResource == true)
                {
                    resultResource = _projectResourceService.SaveProjectResources(ProjectResourceDetails, ProjectStatus, weekId, userName);
                }

                //Complaints
                if (tabPostedComplaint == true)
                {
                    resultComplaint = _projectComplaintService.SaveProjectsComplaints(ProjectComplaintDetails, ProjectStatus, userName, weekId);
                }

                if (tabPostedPaymentDetail == true)
                {
                    resultPayment = _paymentDetailsService.SavePaymentDetails(paymentDetails, ProjectStatus, weekId, userName);
                }

                // Change Request
                if (tabPostedChangeRequestDetails == true)
                {
                    resultChangeRequest = _changeRequestDetailsService.SaveChangeRequestDetails(changeRequestDetails, ProjectStatus, weekId, userName);
                }

                // Infrastructure
                if (tabPostedInfrastructureDetails == true)
                {
                    resultInfrastructure = _infrastructureDetailsService.SaveInfrastructureDetails(infrastructureDetails, ProjectStatus, weekId, userName);
                }


                if (resultResource == -1 || resultComplaint == -1 || resultPayment == -1 || resultChangeRequest == -1 || resultInfrastructure == -1 || resultStatus == -1)
                {
                    if (tabPostedSummary == true)
                    {
                        this.context.Delete(ProjectStatus);
                    }
                    if (tabPostedSprint == true)
                    {
                        this.context.DeleteAll(SprintDetails);
                    }
                    if (tabPostedResource == true)
                    {
                        this.context.DeleteAll(ProjectResourceDetails);
                    }
                    if (tabPostedComplaint == true)
                    {
                        this.context.DeleteAll(ProjectComplaintDetails);
                    }
                    if (tabPostedPaymentDetail == true)
                    {
                        this.context.DeleteAll(paymentDetails);
                    }
                    if (tabPostedChangeRequestDetails == true)
                    {
                        this.context.DeleteAll(changeRequestDetails);
                    }
                    if (tabPostedInfrastructureDetails == true)
                    {
                        this.context.DeleteAll(infrastructureDetails);
                    }

                    scope.Dispose();
                    return(-1);
                }
                else
                {
                    // Status
                    if (tabPostedSummary == false)
                    {
                        var dbProjectStatus = context.Query <ProjectStatus>()
                                              .Where(ps => ps.WeekId == weekId && ps.ProjectId == ProjectStatus.ProjectId).FirstOrDefault();

                        if (dbProjectStatus != null)
                        {
                            dbProjectStatus.ModifiedBy   = userName;
                            dbProjectStatus.ModifiedDate = DateTime.Now;
                            context.Update(dbProjectStatus);
                        }
                    }

                    scope.Complete();
                }
            }

            return(1);
        }