Пример #1
0
        public void AddTravelDetailTrail(TravelDetailTrail objTravelDetailTrailModel)
        {
            _context.TravelDetailTrails.Add(objTravelDetailTrailModel);
            _context.SaveChanges();
            // string Message = Enum.GetName(typeof(TravelRequestStatusEnum), objTravelDetailTrailModel.StatusId);
            string Message = EnumHelper <TravelRequestStatusEnum> .GetDisplayValue((TravelRequestStatusEnum)objTravelDetailTrailModel.StatusId);

            List <int> UserId = new List <int>();
            List <int> data;

            switch (objTravelDetailTrailModel.StatusId)
            {
            case (int)TravelRequestStatusEnum.SubmittedByUser:
            case (int)TravelRequestStatusEnum.Resubmitted:
                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.ProjectManager && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                break;

            case (int)TravelRequestStatusEnum.InProcess:
                UserId.Add(_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.ProjectManager && x.IsActive == 1).Select(e => e.ID).FirstOrDefault());
                break;

            case (int)TravelRequestStatusEnum.ApprovedByProjectManager:
                if (objTravelDetailTrailModel.TravelDetail.IsProcedural == (int)ProcedureEnum.DirectFinalStep)
                {
                    data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.Client2 && x.IsActive == 1).Select(e => e.ID).ToList());
                    foreach (var item in data)
                    {
                        UserId.Add(item);
                    }
                }
                else
                {
                    data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.Client1 && x.IsActive == 1).Select(e => e.ID).ToList());
                    foreach (var item in data)
                    {
                        UserId.Add(item);
                    }
                }
                break;

            case (int)TravelRequestStatusEnum.ApprovedByClient1:
                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.Client2 && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                break;

            case (int)TravelRequestStatusEnum.ApprovedByClient2:
                UserId.Add(objTravelDetailTrailModel.TravelDetail.UserID);
                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.Client1 && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.ProjectManager && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                break;


            case (int)TravelRequestStatusEnum.RejectedByClient1:
                UserId.Add(objTravelDetailTrailModel.TravelDetail.UserID);
                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.ProjectManager && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                break;

            case (int)TravelRequestStatusEnum.RejectedByClient2:
                UserId.Add(objTravelDetailTrailModel.TravelDetail.UserID);

                data = (_context.TravelUsers.Where(x => x.TravelUserRoleMappings.FirstOrDefault().RoleID == (int)UserRoleEnum.ProjectManager && x.IsActive == 1).Select(e => e.ID).ToList());
                foreach (var item in data)
                {
                    UserId.Add(item);
                }
                break;

            case (int)TravelRequestStatusEnum.RejectedByProjectManager:
                UserId.Add(objTravelDetailTrailModel.TravelDetail.UserID);
                break;
            }

            bool Status = true;
            int  stepid = objTravelDetailTrailModel.StatusId;

            foreach (int id in UserId)
            {
                InsertNotification(Message, id, Status, stepid, objTravelDetailTrailModel.TravelId, (int)objTravelDetailTrailModel.ProcessedBy);
            }
        }
Пример #2
0
        public void AddTravelDetailTrail(TravelDetailTrailModel objTravelDetailTrailVM)
        {
            TravelDetailTrail objTrail = AutoMapper.Mapper.Map <TravelDetailTrailModel, TravelDetailTrail>(objTravelDetailTrailVM);

            TravelRepository.AddTravelDetailTrail(objTrail);
        }