public bool SaveManuscriptLogin(ManuscriptLoginDTO manuscriptLoginDTO, IDictionary <string, string> dataErrors) { var manuscriptStatus = _manuscriptDBRepositoryReadSide.GetManuscriptStatus(); var manuscriptStatusId = (from q in manuscriptStatus where q.Description.ToLower() == "open" select q.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLogin.ManuscriptStatusId = Convert.ToInt32(manuscriptStatusId); if (manuscriptLoginDTO.IsRevision == true) { manuscriptLoginDTO.manuscriptLogin.Revision = Convert.ToInt32(_manuscriptLoginDBRepositoryReadSide.GetRevisionCount(manuscriptLoginDTO.manuscriptLogin.MSID)); manuscriptLoginDTO.manuscriptLogin.RevisionParentId = _manuscriptLoginDBRepositoryReadSide.GetParentCrestId(manuscriptLoginDTO.manuscriptLogin.MSID); manuscriptLoginDTO.manuscriptLogin.MSID = manuscriptLoginDTO.manuscriptLogin.MSID + "_R" + Convert.ToString(_manuscriptLoginDBRepositoryReadSide.GetRevisionCount(manuscriptLoginDTO.manuscriptLogin.MSID)); } ManuscriptLoginUnitOfWork manuscriptLoginUnitOfWork = null; try { manuscriptLoginUnitOfWork = new ManuscriptLoginUnitOfWork(conString); manuscriptLoginUnitOfWork.manuscriptLoginDTO = manuscriptLoginDTO; manuscriptLoginUnitOfWork.SaveManuscriptLogin(); SaveManuscriptDetails(manuscriptLoginDTO, manuscriptStatusId, manuscriptLoginUnitOfWork); return(true); } catch (Exception ex) { } //exception will be raised up in the call stack finally { if (manuscriptLoginUnitOfWork != null) { manuscriptLoginUnitOfWork.Dispose(); } } return(true); }
private void SaveManuscriptDetails(ManuscriptLoginDTO manuscriptLoginDTO, int manuscriptStatusID, ManuscriptLoginUnitOfWork _manuscriptLoginUnitOfWork) { int crestID = _manuscriptLoginDBRepositoryReadSide.GetCrestID(manuscriptLoginDTO.manuscriptLogin.MSID); manuscriptLoginDTO.IsCrestIDPresent = _manuscriptLoginDBRepositoryReadSide.IsCrestIDPresent(crestID); bool IsBoth = _manuscriptLoginDBRepositoryReadSide.IsServiceTypeBoth(manuscriptLoginDTO.manuscriptLogin.ServiceTypeStatusId); if (IsBoth) { var msLoginDetails = new ManuscriptLoginDetails { AssignedDate = DateTime.Now, ServiceTypeStatusId = _manuscriptLoginDBRepositoryReadSide.MSServiceTypeID(), JobStatusId = Convert.ToInt32(manuscriptStatusID), CrestId = crestID, RoleId = _manuscriptLoginDBRepositoryReadSide.GetAssociateRole(), JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault() }; if (!string.IsNullOrEmpty(manuscriptLoginDTO.AssociateName)) { var prGetAssociateInfoResult = _manuscriptDBRepositoryReadSide.GetAssociateName(manuscriptLoginDTO.AssociateName) .FirstOrDefault(); msLoginDetails.UserRoleId = prGetAssociateInfoResult.ID; msLoginDetails.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "assigned").Select(x => x.ID).FirstOrDefault(); } manuscriptLoginDTO.manuscriptLoginDetails.Add(msLoginDetails); if (manuscriptLoginDTO.IsCrestIDPresent) { var rsLoginDetails = new ManuscriptLoginDetails { AssignedDate = DateTime.Now, CrestId = crestID, JobStatusId = Convert.ToInt32(manuscriptStatusID), RoleId = _manuscriptLoginDBRepositoryReadSide.GetAssociateRole(), ServiceTypeStatusId = _manuscriptLoginDBRepositoryReadSide.RSServiceTypeID(), JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault() }; manuscriptLoginDTO.manuscriptLoginDetails.Add(rsLoginDetails); //update record var updateManuscriptLoginDetails = new ManuscriptLoginDetails(); updateManuscriptLoginDetails = _manuscriptLoginDBRepositoryReadSide.GetManuscriptLoginDetails(crestID, _manuscriptLoginDBRepositoryReadSide.GetServiceTypeStatusId(crestID)); updateManuscriptLoginDetails.SubmitedDate = DateTime.Now; updateManuscriptLoginDetails.FetchedDate = DateTime.Now; //update using query updateManuscriptLoginDetails.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault(); //update using query updateManuscriptLoginDetails.JobStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLoginDetails.Add(updateManuscriptLoginDetails); if (_manuscriptLoginDetailsRepository.GetOpenManuscriptCount(crestID) == 2) { var updateManuscriptLoginDetailsRS = _manuscriptLoginDBRepositoryReadSide.GetManuscriptLoginDetails(crestID, _manuscriptLoginDBRepositoryReadSide.RSServiceTypeID()); updateManuscriptLoginDetailsRS.SubmitedDate = DateTime.Now; updateManuscriptLoginDetailsRS.FetchedDate = DateTime.Now; //update using query updateManuscriptLoginDetailsRS.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault(); //update using query updateManuscriptLoginDetailsRS.JobStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLoginDetails.Add(updateManuscriptLoginDetailsRS); } } if (!manuscriptLoginDTO.IsCrestIDPresent) { var rsLoginDetails = new ManuscriptLoginDetails { AssignedDate = DateTime.Now, CrestId = crestID, JobStatusId = Convert.ToInt32(manuscriptStatusID), RoleId = _manuscriptLoginDBRepositoryReadSide.GetAssociateRole(), ServiceTypeStatusId = _manuscriptLoginDBRepositoryReadSide.RSServiceTypeID(), JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault() }; manuscriptLoginDTO.manuscriptLoginDetails.Add(rsLoginDetails); } } else if (_manuscriptLoginDetailsRepository.GetOpenManuscriptCount(crestID) == 2) { var msLoginDetails = new ManuscriptLoginDetails { AssignedDate = DateTime.Now, ServiceTypeStatusId = manuscriptLoginDTO.manuscriptLogin.ServiceTypeStatusId, JobStatusId = Convert.ToInt32(manuscriptStatusID), CrestId = crestID, RoleId = _manuscriptLoginDBRepositoryReadSide.GetAssociateRole(), JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault() }; if (!string.IsNullOrEmpty(manuscriptLoginDTO.AssociateName)) { var prGetAssociateInfoResult = _manuscriptDBRepositoryReadSide.GetAssociateName(manuscriptLoginDTO.AssociateName).FirstOrDefault(); msLoginDetails.UserRoleId = prGetAssociateInfoResult.ID; msLoginDetails.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "assigned").Select(x => x.ID).FirstOrDefault(); } manuscriptLoginDTO.manuscriptLoginDetails.Add(msLoginDetails); if (manuscriptLoginDTO.IsCrestIDPresent) { //update record var updateManuscriptLoginDetailsMS = new ManuscriptLoginDetails(); updateManuscriptLoginDetailsMS = _manuscriptLoginDBRepositoryReadSide.GetManuscriptLoginDetails(crestID, _manuscriptLoginDBRepositoryReadSide.MSServiceTypeID()); updateManuscriptLoginDetailsMS.SubmitedDate = DateTime.Now; updateManuscriptLoginDetailsMS.FetchedDate = DateTime.Now; //update using query updateManuscriptLoginDetailsMS.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault(); //update using query updateManuscriptLoginDetailsMS.JobStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLoginDetails.Add(updateManuscriptLoginDetailsMS); //update record _manuscriptLoginDetailsRepository var updateManuscriptLoginDetailsRS = _manuscriptLoginDBRepositoryReadSide.GetManuscriptLoginDetails(crestID, _manuscriptLoginDBRepositoryReadSide.RSServiceTypeID()); updateManuscriptLoginDetailsRS.SubmitedDate = DateTime.Now; updateManuscriptLoginDetailsRS.FetchedDate = DateTime.Now; //update using query updateManuscriptLoginDetailsRS.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault(); //update using query updateManuscriptLoginDetailsRS.JobStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLoginDetails.Add(updateManuscriptLoginDetailsRS); } } else { var manuscriptLoginDetails = new ManuscriptLoginDetails { AssignedDate = DateTime.Now, CrestId = crestID, ServiceTypeStatusId = manuscriptLoginDTO.manuscriptLogin.ServiceTypeStatusId, JobStatusId = Convert.ToInt32(manuscriptStatusID), RoleId = _manuscriptLoginDBRepositoryReadSide.GetAssociateRole(), JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault() }; if (!string.IsNullOrEmpty(manuscriptLoginDTO.AssociateName)) { var prGetAssociateInfoResult = _manuscriptDBRepositoryReadSide.GetAssociateName(manuscriptLoginDTO.AssociateName) .FirstOrDefault(); manuscriptLoginDetails.UserRoleId = prGetAssociateInfoResult.ID; manuscriptLoginDetails.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "assigned").Select(x => x.ID).FirstOrDefault(); } manuscriptLoginDTO.manuscriptLoginDetails.Add(manuscriptLoginDetails); if (manuscriptLoginDTO.IsCrestIDPresent) { //update record _manuscriptLoginDetailsRepository var updateManuscriptLoginDetailsMS = _manuscriptLoginDBRepositoryReadSide.GetManuscriptLoginDetails(crestID, _manuscriptLoginDBRepositoryReadSide.GetServiceTypeStatusId(crestID)); updateManuscriptLoginDetailsMS.SubmitedDate = DateTime.Now; updateManuscriptLoginDetailsMS.FetchedDate = DateTime.Now; //update using query updateManuscriptLoginDetailsMS.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault(); //update using query updateManuscriptLoginDetailsMS.JobStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault(); manuscriptLoginDTO.manuscriptLoginDetails.Add(updateManuscriptLoginDetailsMS); } } _manuscriptLoginUnitOfWork.SaveManuscriptLoginDetails(); }