public static ActorUpdateCommand ToActorUpdateCommand (this ApiActorUpdateCommand from, string id, ClaimsPrincipal currentPrincipal) { if (from is null) { return(null); } return(new ActorUpdateCommand { Id = id, CreatedAt = DateTime.UtcNow, CurrentPrincipal = currentPrincipal, Department = from.Department, Description = from.Description, EMail = from.Description, FirstName = from.FirstName, IsArchived = from.IsArchived, LastName = from.LastName, Login = from.Login, Phone = from.Phone, Role = EnumerationClass.GetAll <ActorRole>() .FirstOrDefault(x => x.Id == from.Role), Skype = from.Skype, Title = from.Title }); }
public static GeoTaskUpdateCommand ToGeoTaskUpdateCommand (this ApiGeoTaskUpdateCommand from, string id, ClaimsPrincipal currentPrincipal) { if (from is null) { return(null); } var to = new GeoTaskUpdateCommand { Description = from.Description, Id = id, PlanFinishAt = from.PlanFinishAt, PlanStartAt = from.PlanStartAt, ProjectId = from.ProjectId, ResponsibleActorId = from.ResponsibleActorId, Title = from.Title, CurrentPrincipal = currentPrincipal, IsArchived = from.IsArchived, Status = EnumerationClass .GetAll <GeoTaskStatus>() .Where(x => x.Id == from.Status) .FirstOrDefault(), MessageTitle = from.MessageTitle, MessageDescription = from.MessageDescriprion }; to.AssistentActorsIds.AddRange(from.AssistentActorsIds); to.GeosIds.AddRange(from.GeosIds); to.ObserverActorsIds.AddRange(from.ObserverActorsIds); return(to); }
private IMongoQueryable <Actor> BuildQuery ( DbGetActorFilterRequest request ) { var query = DbContext.Db.GetCollection <Actor> (Defaults.ActorCollectionName) .AsQueryable(); if (!string.IsNullOrWhiteSpace(request.Contains)) { query = query.WhereText(request.Contains); } if (request.Archived.HasValue) { query = query.Where(x => x.IsArchived == request.Archived); } if (request.ActorRoleMask != 0) { var roles = new HashSet <ActorRole>(); var checkList = EnumerationClass.GetAll <ActorRole>(); foreach (var item in checkList) { if (request.ActorRoleMask.Contains(item)) { roles.Add(item); } } query = query.Where(x => roles.Contains(x.Role)); } return(query); }
public StatusValidator() { RuleFor(x => x) .NotEmpty() .Must(s => EnumerationClass .GetAll <GeoTaskStatus>() .Any(v => v == s)); }
public ActorGeoTaskRoleValidator() { RuleFor(x => x) .NotEmpty() .Must(xr => EnumerationClass .GetAll <ActorGeoTaskRole>() .Any(v => v.Id == xr)); }
public ActorCreateCommandValidator() { RuleFor(x => x.CreatedAt).NotEmpty(); RuleFor(x => x.Role) .NotEmpty() .Must(xr => EnumerationClass.GetAll <ActorRole>() .Any(r => r == xr)); RuleFor(x => x.FirstName).NotEmpty(); }
public ActorValidator() { RuleFor(x => x.Id).NotEmpty(); RuleFor(x => x.CreatedAt).NotEmpty(); RuleFor(x => x.Title).NotEmpty(); RuleFor(x => x.FirstName).NotEmpty() .When(x => string.IsNullOrWhiteSpace(x.LastName)); RuleFor(x => x.LastName).NotEmpty() .When(x => string.IsNullOrWhiteSpace(x.FirstName)); RuleFor(x => x.Role).NotEmpty() .Must(xr => EnumerationClass .GetAll <ActorRole>() .Any(r => r == xr)); }
public static _EntityCreateCommandType ToEntity <TEntity> (this _ApiEntityCreateCommandType from, ClaimsPrincipal currentPrincipal) where TEntity : _EntityCreateCommandType { if (from is null) { return(null); } var to = new _EntityCreateCommandType { Description = from.Description, Title = from.Title, CurrentPrincipal = currentPrincipal, IsArchived = from.IsArchived, IsMap = from.IsMap, MapProvider = from.MapProvider, ShowMap = from.ShowMap }; to.Layers.AddRange(from.Layers); from.MapParameters.ToList().ForEach(x => to.MapParameters.TryAdd(x.Key, x.Value)); var allRoles = EnumerationClass.GetAll <ActorRole>(); foreach (var item in from.ProjectActorRoles) { var actorRole = allRoles.FirstOrDefault(x => x.Id == item.Value); if (actorRole != null) { to.ProjectActorRoles.TryAdd(item.Key, actorRole); } } return(to); }
private IMongoQueryable <DbGeoTask> BuildQuery ( DbGetGeoTaskListRequest request ) { var query = DbContext.Db.GetCollection <DbGeoTask> (Defaults.TaskCollectionName) .AsQueryable(); if (!string.IsNullOrWhiteSpace(request.Contains)) { query = query.WhereText(request.Contains); } if (request.Archived.HasValue) { query = query.Where(x => x.IsArchived == request.Archived); } if (request.ProjectIds.Count > 0) { query = query.Where(x => request.ProjectIds.Contains(x.ProjectId)); } if (request.Actors.Count > 0) { foreach (var actorPair in request.Actors) { if (actorPair.Value == 0 || actorPair.Value .Contains(ActorGeoTaskRole.Assistant)) { query = query.Where(x => x.AssistentActorsIds.Any(x => x == actorPair.Key)); } if (actorPair.Value == 0 || actorPair.Value.Contains(ActorGeoTaskRole.Creator)) { query = query.Where(x => x.CreatedById == actorPair.Key); } if (actorPair.Value == 0 || actorPair.Value.Contains(ActorGeoTaskRole.Observer)) { query = query.Where(x => x.ObserverActorsIds.Any(x => x == actorPair.Key)); } if (actorPair.Value == 0 || actorPair.Value .Contains(ActorGeoTaskRole.Responsible)) { query = query.Where(x => x.ResponsibleActorId == actorPair.Key); } } } if (request.TaskStatusMask != 0) { var statuses = new HashSet <GeoTaskStatus>(); var checkList = EnumerationClass.GetAll <GeoTaskStatus>(); foreach (var item in checkList) { if (request.TaskStatusMask.Contains(item)) { statuses.Add(item); } } query = query.Where(x => statuses.Contains(x.Status)); } if (request.MaxTimeToDeadLine.HasValue) { var deadlineTime = DateTime.UtcNow + request.MaxTimeToDeadLine.Value; query = query.Where(x => x.PlanFinishAt.HasValue && deadlineTime >= x.PlanFinishAt); } if (request.GeoIds.Count > 0) { query = query.Where(x => x.GeosIds.Any(z => request.GeoIds.Contains(z))); } return(query); }