public bool UnallocateAssociateUser(AdminDashBoardDTO _adminDashBoardDTO)
        {
            if (IsAssociateAllocateToMSID(_adminDashBoardDTO))
            {
                var jobProcessStatusId            = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "assigned").Select(x => x.ID).FirstOrDefault();
                var jobStatusId                   = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault();
                var _updatemanuscriptLoginDetails = (from loginDetails in manuscriptDataContextRead.ManuscriptLoginDetails
                                                     where loginDetails.CrestId == _adminDashBoardDTO.CrestId &&
                                                     loginDetails.RoleId == _roleId &&
                                                     loginDetails.ServiceTypeStatusId == _serviceTypeId &&
                                                     loginDetails.JobProcessStatusId == jobProcessStatusId &&
                                                     loginDetails.JobStatusId == jobStatusId
                                                     select loginDetails).FirstOrDefault();

                var manuscriptLoginDetails = new ManuscriptLoginDetails
                {
                    CrestId             = _updatemanuscriptLoginDetails.CrestId,
                    JobStatusId         = _updatemanuscriptLoginDetails.JobStatusId,
                    ServiceTypeStatusId = _updatemanuscriptLoginDetails.ServiceTypeStatusId,
                    RoleId             = _updatemanuscriptLoginDetails.RoleId,
                    JobProcessStatusId = _updatemanuscriptLoginDetails.JobStatusId,
                };
                _adminDashBoardDTO.manuscriptLoginDetails.Add(manuscriptLoginDetails);

                _updatemanuscriptLoginDetails.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault();
                _updatemanuscriptLoginDetails.FetchedDate        = DateTime.Now;
                _updatemanuscriptLoginDetails.SubmitedDate       = DateTime.Now;
                _updatemanuscriptLoginDetails.JobStatusId        = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault();
                _adminDashBoardDTO.manuscriptLoginDetails.Add(_updatemanuscriptLoginDetails);
                SaveManuscriptLoginDetails(_adminDashBoardDTO);

                return(true);
            }
            else
            {
                return(false);
            }
        }
        private void ManuscriptLoginVmDetails(ManuscriptLoginVM manuscriptLoginVm, int crestId)
        {
            ManuscriptLogin manuscriptLogin;
            var             manuscriptLoginDetails = new ManuscriptLoginDetails();

            manuscriptLogin                      = ManuscriptLoginDbRepositoryReadSide.GetManuscriptByCrestID(crestId);
            manuscriptLoginVm.CrestId            = manuscriptLogin.CrestId;
            manuscriptLoginVm.SpecialInstruction = manuscriptLogin.SpecialInstruction;
            //change as per id
            if (manuscriptLogin.ServiceTypeStatusId == 9)
            {
                manuscriptLoginDetails = ManuscriptLoginDbRepositoryReadSide.GetManuscriptLoginDetails(manuscriptLogin.CrestId, ManuscriptLoginDbRepositoryReadSide.MSServiceTypeID());
            }
            else
            {
                manuscriptLoginDetails = ManuscriptLoginDbRepositoryReadSide.GetManuscriptLoginDetails(manuscriptLogin.CrestId, manuscriptLogin.ServiceTypeStatusId);
            }
            if (manuscriptLoginDetails != null)
            {
                if (manuscriptLoginDetails.UserRoleId != null && manuscriptLoginDetails.UserRoleId != 0)
                {
                    var usernameID = ManuscriptLoginDbRepositoryReadSide.GetUserID(Convert.ToInt32(manuscriptLoginDetails.UserRoleId)).UserID;
                    manuscriptLoginVm.Associate = _manuscriptDBRepositoryReadSide.EmployeeName(usernameID);
                }
            }
            manuscriptLoginVm.InitialSubmissionDate = manuscriptLogin.InitialSubmissionDate;
            manuscriptLoginVm.ManuscriptFilePath    = manuscriptLogin.ManuscriptFilePath;
            manuscriptLoginVm.ServiceTypeID         = manuscriptLogin.ServiceTypeStatusId;
            manuscriptLoginVm.ArticleTypeID         = manuscriptLogin.ArticleTypeId;
            manuscriptLoginVm.JournalID             = manuscriptLogin.JournalId;
            manuscriptLoginVm.MSID         = manuscriptLogin.MSID;
            manuscriptLoginVm.SectionID    = manuscriptLogin.SectionId;
            manuscriptLoginVm.ArticleTitle = manuscriptLogin.ArticleTitle;
            manuscriptLoginVm.ReceivedDate = manuscriptLogin.ReceivedDate;
            manuscriptLoginVm.TaskID       = manuscriptLogin.TaskID;
        }
Пример #3
0
        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();
        }
        public bool HoldMSIDForJob(AdminDashBoardDTO _adminDashBoardDTO)
        {
            int jobProcessStatusId = IsJobOpenMSID(_adminDashBoardDTO);

            //assigned
            if (jobProcessStatusId == 13 || jobProcessStatusId == 11)
            {
                var jobStatusIDvalue =
                    _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault();
                var _updatemanuscriptLoginDetailsForAssigned = (from loginDetails in manuscriptDataContextRead.ManuscriptLoginDetails
                                                                where loginDetails.CrestId == _adminDashBoardDTO.CrestId &&
                                                                loginDetails.RoleId == _roleId &&
                                                                loginDetails.ServiceTypeStatusId == _serviceTypeId &&
                                                                loginDetails.JobStatusId == jobStatusIDvalue &&
                                                                loginDetails.JobProcessStatusId == jobProcessStatusId
                                                                select loginDetails).FirstOrDefault();
                var jobProcessStatusIdOfHold = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "on hold").Select(x => x.ID).FirstOrDefault();

                var manuscriptLoginDetails = new ManuscriptLoginDetails
                {
                    CrestId             = _adminDashBoardDTO.CrestId,
                    JobStatusId         = _updatemanuscriptLoginDetailsForAssigned.JobStatusId,
                    ServiceTypeStatusId = _serviceTypeId,
                    RoleId             = _updatemanuscriptLoginDetailsForAssigned.RoleId,
                    JobProcessStatusId = jobProcessStatusIdOfHold,
                };
                _adminDashBoardDTO.manuscriptLoginDetails.Add(manuscriptLoginDetails);

                _updatemanuscriptLoginDetailsForAssigned.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "unallocate").Select(x => x.ID).FirstOrDefault();
                _updatemanuscriptLoginDetailsForAssigned.FetchedDate        = DateTime.Now;
                _updatemanuscriptLoginDetailsForAssigned.SubmitedDate       = DateTime.Now;
                _updatemanuscriptLoginDetailsForAssigned.JobStatusId        = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "close").Select(x => x.ID).FirstOrDefault();
                _adminDashBoardDTO.manuscriptLoginDetails.Add(_updatemanuscriptLoginDetailsForAssigned);
                SaveManuscriptLoginDetails(_adminDashBoardDTO);

                return(true);
            }
            else if (jobProcessStatusId == 7)
            {
                var jobStatusIDvalue = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "open").Select(x => x.ID).FirstOrDefault();
                var _updatemanuscriptLoginDetailsForOpen = (from loginDetails in manuscriptDataContextRead.ManuscriptLoginDetails
                                                            where loginDetails.CrestId == _adminDashBoardDTO.CrestId &&
                                                            loginDetails.RoleId == _roleId &&
                                                            loginDetails.ServiceTypeStatusId == _serviceTypeId &&
                                                            loginDetails.JobStatusId == jobStatusIDvalue &&
                                                            loginDetails.JobProcessStatusId == jobProcessStatusId
                                                            select loginDetails).FirstOrDefault();
                _updatemanuscriptLoginDetailsForOpen.JobProcessStatusId = _manuscriptLoginDBRepositoryReadSide.GetStatusMaster().Where(x => x.Description.ToLower() == "on hold").Select(x => x.ID).FirstOrDefault();
                _updatemanuscriptLoginDetailsForOpen.ModifiedDate       = DateTime.Now;
                _updatemanuscriptLoginDetailsForOpen.JobStatusId        = _updatemanuscriptLoginDetailsForOpen.JobStatusId;
                _adminDashBoardDTO.manuscriptLoginDetails.Add(_updatemanuscriptLoginDetailsForOpen);
                SaveManuscriptLoginDetails(_adminDashBoardDTO);
                return(true);
            }

            else
            {
                return(false);
            }

            return(false);
        }