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); } }
public void AddTravelDetailTrail(TravelDetailTrailModel objTravelDetailTrailVM) { TravelDetailTrail objTrail = AutoMapper.Mapper.Map <TravelDetailTrailModel, TravelDetailTrail>(objTravelDetailTrailVM); TravelRepository.AddTravelDetailTrail(objTrail); }