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); }