Exemple #1
0
        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);
        }
Exemple #3
0
        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));
 }
Exemple #5
0
 public ActorGeoTaskRoleValidator()
 {
     RuleFor(x => x)
     .NotEmpty()
     .Must(xr => EnumerationClass
           .GetAll <ActorGeoTaskRole>()
           .Any(v => v.Id == xr));
 }
Exemple #6
0
 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);
        }