public static Model.TaskInfoSearchQuery Convert(Client.TaskInfoSearchQuery clientQuery)
        {
            if (clientQuery == null)
            {
                throw new ArgumentNullException(nameof(clientQuery));
            }

            var sortBy = clientQuery.SortBy.HasValue ? TaskSortByConverter.Convert(clientQuery.SortBy.Value)
                : (Model.TaskSortBy?)null;

            var sortType = clientQuery.Sort.HasValue ? SortTypeConverter.Convert(clientQuery.Sort.Value)
                :(Models.SortType?)null;
            var priority = clientQuery.Priority.HasValue ? TaskPriorityConverter.Convert(clientQuery.Priority.Value)
                :(Model.TaskPriority?)null;

            var modelQuery = new Model.TaskInfoSearchQuery
            {
                Done        = clientQuery.Done,
                Limit       = clientQuery.Limit,
                Offset      = clientQuery.Offset,
                CreatedFrom = clientQuery.CreatedFrom,
                CreatedTo   = clientQuery.CreatedTo,
                Priority    = priority,
                ToDeadline  = clientQuery.ToDeadline,
                Sort        = sortType,
                SortBy      = sortBy
            };

            return(modelQuery);
        }
Exemple #2
0
        public static Model.ToDoTaskInfoSearchQuery Convert(Client.ToDoTaskInfoSearchQuery clientQuery)
        {
            if (clientQuery == null)
            {
                throw new ArgumentNullException(nameof(clientQuery));
            }

            var modelSort = clientQuery.Sort.HasValue ?
                            SortTypeConverter.Convert(clientQuery.Sort.Value) :
                            (Models.SortType?)null;

            var modelSortBy = clientQuery.SortBy.HasValue ?
                              ToDoTaskSortByConverter.Convert(clientQuery.SortBy.Value) :
                              (Model.ToDoTaskSortBy?)null;

            var priority = clientQuery.Priority.HasValue ?
                           ToDoTaskPriorityConverter.Convert(clientQuery.Priority.Value)
                : (Model.ToDoTaskPriority?)null;

            return(new Model.ToDoTaskInfoSearchQuery
            {
                CreatedFrom = clientQuery.CreatedFrom,
                CreatedTo = clientQuery.CreatedTo,

                Limit = clientQuery.Limit,
                Offset = clientQuery.Offset,

                Priority = priority,
                EndAt = clientQuery.EndAt,

                Sort = modelSort,
                SortBy = modelSortBy
            });
        }
Exemple #3
0
        /// <summary>
        /// Переводит запрос за заметками из клиентсокой модели в серверную
        /// </summary>
        /// <param name="clientQuery">Запрос за заметками в клиентской модели</param>
        /// <returns>Запрос за заметками в серверной модели</returns>
        public static Model.NoteInfoSearchQuery Convert(Client.NoteInfoSearchQuery clientQuery)
        {
            if (clientQuery == null)
            {
                throw new ArgumentNullException(nameof(clientQuery));
            }

            var modelUserId = (Guid?)null;

            if (clientQuery.UserId != null)
            {
                if (!Guid.TryParse(clientQuery.UserId, out var userId))
                {
                    throw new ArgumentException($"The user id \"{clientQuery.UserId}\" is invalid.", nameof(clientQuery));
                }

                modelUserId = userId;
            }


            var modelSort = clientQuery.Sort.HasValue ?
                            SortTypeConverter.Convert(clientQuery.Sort.Value) :
                            (Models.SortType?)null;

            var modelSortBy = clientQuery.SortBy.HasValue ?
                              NoteSortByConverter.Convert(clientQuery.SortBy.Value) :
                              (Model.NoteSortBy?)null;

            var modelQuery = new Model.NoteInfoSearchQuery
            {
                CreatedFrom = clientQuery.CreatedFrom,
                CreatedTo   = clientQuery.CreatedTo,
                UserId      = modelUserId,
                Favorite    = clientQuery.Favorite,
                Limit       = clientQuery.Limit,
                Offset      = clientQuery.Offset,
                Sort        = modelSort,
                SortBy      = modelSortBy,
                Tags        = clientQuery.Tags?.ToList()
            };

            return(modelQuery);
        }