コード例 #1
0
            public IEndpointHelperSetup AddToDoTask(string name = null)
            {
                AddToDoTaskRequest request = new AddToDoTaskRequest
                {
                    Title     = name ?? "DEVELOPMENT TESTING TO DO TASK",
                    PeopleIds = new List <int> {
                        5
                    }
                };
                var requestBody = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
                var result      = _fakeSever.PostAsync("/Api/v2/ToDo", requestBody).Result;

                var responseBody = result.Content.ReadAsStringAsync().Result;

                return(this);
            }
コード例 #2
0
ファイル: ToDoRepository.cs プロジェクト: Flave229/SaltVault
        public int AddToDoTask(AddToDoTaskRequest toDoTask, int userHouseId)
        {
            _connection.Open();

            try
            {
                var dueValue = toDoTask.Due == null ? "NULL" : $"'{toDoTask.Due:yyyy-MM-dd}'";
                var command  = new NpgsqlCommand($"INSERT INTO public.\"ToDo\" (\"Title\", \"Due\", \"Complete\", \"HouseId\") " +
                                                 $"VALUES ('{toDoTask.Title}', {dueValue}, false, {userHouseId}) " +
                                                 "RETURNING \"Id\"", _connection);
                Int64 toDoTaskId = -1;
                var   reader     = command.ExecuteReader();
                while (reader.Read())
                {
                    toDoTaskId = Convert.ToInt64(reader[0]);
                }

                reader.Close();

                foreach (var peopleId in toDoTask.PeopleIds)
                {
                    command = new NpgsqlCommand("INSERT INTO public.\"PeopleForToDo\" (\"ToDoId\", \"PersonId\") " +
                                                $"VALUES ({toDoTaskId}, {peopleId})", _connection);
                    reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                    }
                    reader.Close();
                }

                return(Convert.ToInt32(toDoTaskId));
            }
            catch (System.Exception exception)
            {
                throw new System.Exception($"An Error occured while adding the To Do Task '{toDoTask.Title}'", exception);
            }
            finally
            {
                _connection.Close();
            }
        }
コード例 #3
0
ファイル: ToDoController.cs プロジェクト: Flave229/SaltVault
        public AddToDoResponse AddToDoItem([FromBody] AddToDoTaskRequest toDoTaskRequest)
        {
            var response = new AddToDoResponse();

            try
            {
                if (_userService.AuthenticateSession(Request.Headers["Authorization"].ToString()) == false)
                {
                    response.AddError("The authorization credentails were invalid", ErrorCode.SESSION_INVALID);
                    return(response);
                }

                ActiveUser user = _userService.GetUserInformationFromAuthHeader(Request.Headers["Authorization"].ToString());
                if (user.HouseId == 0)
                {
                    response.AddError("You must belong to a household to add To Do Tasks", ErrorCode.USER_NOT_IN_HOUSEHOLD);
                    return(response);
                }
                response.Id = _toDoRepository.AddToDoTask(toDoTaskRequest, user.HouseId);

                response.Notifications = new List <string>
                {
                    $"The task '{toDoTaskRequest.Title}' has been added"
                };
            }
            catch (ErrorCodeException exception)
            {
                response.AddError($"An unexpected exception occured: {exception}", toDoTaskRequest, exception.Code);
            }
            catch (Exception exception)
            {
                response.AddError($"An unexpected exception occured: {exception}", toDoTaskRequest);
            }

            return(response);
        }