Beispiel #1
0
        public TaskWorklogCreate(TaskWorklogCreateRequest request)
        {
            if (request != null)
            {
                if (request.StartDate > request.FinishDate)
                {
                    Response = new TaskWorklogCreateResponse
                    {
                        Type = TaskWorklogCreateResponseType.StartAndFinishPeriodNotValid
                    };
                    return;
                }

                if ((request.FinishDate - request.StartDate).TotalMinutes < 1)
                {
                    Response = new TaskWorklogCreateResponse
                    {
                        Type = TaskWorklogCreateResponseType.StartAndFinishPeriodLessThanOneMinute
                    };
                    return;
                }

                using (var dbContext = new ApplicationDbContext())
                {
                    var task = dbContext.Tasks.SingleOrDefault(aTask => aTask.Identifier == request.TaskIdentifier);

                    if (task == null)
                    {
                        Response = new TaskWorklogCreateResponse
                        {
                            Type = TaskWorklogCreateResponseType.TaskDoesNotExist
                        };
                        return;
                    }

                    var user = dbContext.Users.SingleOrDefault(aUser => aUser.Identifier == request.UserIdentifier);

                    if (user == null)
                    {
                        Response = new TaskWorklogCreateResponse
                        {
                            Type = TaskWorklogCreateResponseType.UserDoesNotExist
                        };
                        return;
                    }

                    var worklog = new TaskWorklog();
                    worklog.Set(request);
                    dbContext.TaskWorklogs.Add(worklog);
                    dbContext.SaveChanges();

                    Response = new TaskWorklogCreateResponse
                    {
                        Type = TaskWorklogCreateResponseType.Success
                    };
                }
            }
        }
Beispiel #2
0
        public void Set(TaskWorklogCreateRequest request)
        {
            CreatedOnUtc = DateTime.UtcNow;
            UpdatedOnUtc = DateTime.UtcNow;

            UserIdentifier = request.UserIdentifier;
            TaskIdentifier = request.TaskIdentifier;
            StartDate      = request.StartDate;
            FinishDate     = request.FinishDate;
        }
Beispiel #3
0
 public TaskWorklogCreateResponse TaskWorklogCreate(TaskWorklogCreateRequest request)
 => new TaskWorklogCreate(request).Response;