예제 #1
0
        public async Task <AddFamilyTaskPayload> AddFamilyTaskAsync(
            AddFamilyTaskInput input,
            [GlobalStateAttribute("currentUserId")] int?currentUserId,
            [ScopedService] ApplicationDbContext context,
            CancellationToken cancellationToken)
        {
            if (currentUserId == null)
            {
                return(new AddFamilyTaskPayload(
                           new UserError("Please sign in and try again", "NOT_AUTHORIZED")));
            }

            var familyTask = new FamilyTask
            {
                ShortDescription = input.ShortDescription,
                Payment          = input.Payment,
                FamilyId         = input.FamilyId,
                isCompleted      = false,
                CreatedById      = currentUserId,
                createdOn        = DateTime.UtcNow,
                updatedOn        = DateTime.UtcNow
            };

            context.FamilyTasks.Add(familyTask);
            await context.SaveChangesAsync(cancellationToken);

            return(new AddFamilyTaskPayload(familyTask));
        }
예제 #2
0
        public async Task <ClaimTaskPayload> ClaimTask(
            ClaimTaskInput input,
            [GlobalStateAttribute("currentUserId")] int?currentUserId,
            [ScopedService] ApplicationDbContext context,
            CancellationToken cancellationToken
            )
        {
            if (currentUserId == null)
            {
                return(new ClaimTaskPayload(
                           new UserError("Please sign in and try again", "NOT_AUTHORIZED")));
            }

            User user = await context.Users.FirstOrDefaultAsync(
                u => u.Id == currentUserId, cancellationToken);

            if (user == null)
            {
                return(new ClaimTaskPayload(
                           new UserError("No valid user was found", "USER_NOT_VALID")));
            }
            foreach (var taskId in input.TaskIds)
            {
                var newTask = new FamilyTask
                {
                    Id = taskId,
                };
                context.FamilyTasks.Attach(newTask);
                newTask.AssignedToId = user.Id;
            }

            await context.SaveChangesAsync(cancellationToken);

            return(new ClaimTaskPayload(user));
        }
예제 #3
0
        public async Task <FamilyTask> CreateTask(int accountId, int creator, string description, decimal value, DateTimeOffset whenCreated, DateTimeOffset?whenCompleted, int?completedBy)
        {
            var task = new FamilyTask
            {
                TaskId        = Guid.NewGuid(),
                AccountId     = accountId,
                Description   = description,
                Value         = value,
                CreatedBy     = creator,
                WhenCreated   = whenCreated,
                WhenCompleted = whenCompleted,
                WhenApproved  = whenCompleted,
                CompletedBy   = completedBy,
                ApprovedBy    = whenCompleted.HasValue ? (int?)creator : null
            };

            var result = await _db.CreateDocumentAsync(
                UriFactory.CreateDocumentCollectionUri("FamilyCents", "FamilyTasks"),
                task);

            return(task);
        }
예제 #4
0
 protected FamilyTaskPayloadBase(FamilyTask familyTask)
 {
     FamilyTask = familyTask;
 }
예제 #5
0
 public FamilyTaskWrapper(FamilyItem element, FamilyTask task)
 {
     Element = element;
     Task    = task;
 }
예제 #6
0
 public AddFamilyTaskPayload(FamilyTask familyTask)
     : base(familyTask)
 {
 }