public async Task TaskCompletion(Guid taskId, bool isDone) { DAL.Models.Entities.Task task = await _uow.GetRepository <DAL.Models.Entities.Task>().GetByIdAsync(taskId); task.IsDone = isDone; _uow.GetRepository <DAL.Models.Entities.Task>().Update(task); await _uow.SaveChangesAsync(); }
public async Task UpdateAsync(TaskEditionServiceModel entity) { DAL.Models.Entities.Task task = _mapper .Map <TaskEditionServiceModel, DAL.Models.Entities.Task>(entity); _uow.GetRepository <DAL.Models.Entities.Task>().Update(task); await _uow.SaveChangesAsync(); await _schedulerService.RescheduleTaskById(entity.Id); }
public async Task RemoveAsync(TaskServiceModel entity) { DAL.Models.Entities.Task task = await _uow.GetRepository <DAL.Models.Entities.Task>() .GetFirstOrDefaultAsync( predicate: t => t.Id == entity.Id, disableTracking: false); _uow.GetRepository <DAL.Models.Entities.Task>().Remove(task); await _uow.SaveChangesAsync(); }
/*public async Task SendNotificationAsync(INotificable notificableEnity, NotificationType type) * { * /*User user = await _uow.GetRepository<User>().GetFirstOrDefaultAsync( * predicate: u => u.Id == userId, * include: users => users.Include(u => u.PushSubscriptions)); * * await _emailSender.SendEmailAsync()#1# * * throw new NotImplementedException(); * }*/ public async Task SendTaskNotificationAsync(Guid taskId, NotificationType type) { DAL.Models.Entities.Task task = await _uow.GetRepository <DAL.Models.Entities.Task>().GetFirstOrDefaultAsync( predicate: t => t.Id == taskId); Calendar calendar = await _uow.GetRepository <Calendar>().GetFirstOrDefaultAsync( predicate: c => c.Id == task.CalendarId, include: calendars => calendars .Include(c => c.User) .ThenInclude(u => u.PushSubscriptions) .Include(c => c.CalendarUsers) .ThenInclude(cu => cu.User)); List <User> usersForNotify = calendar.CalendarUsers.Select(cu => cu.User).ToList(); usersForNotify.Add(calendar.User); IEnumerable <string> emails = usersForNotify.Select(u => u.Email) .ToList(); IEnumerable <string> deviceTokens = usersForNotify .Where(u => u.PushSubscriptions != null) .SelectMany(u => u.PushSubscriptions) .Select(p => p.DeviceToken) .ToList(); switch (type) { case NotificationType.Start: { var pushNotificationServiceModel = new PushNotificationServiceModel { Title = task.Title, Message = "Time to start doing task", Url = "" //url to page with details }; PushNotification.Models.Notification pushNotification = _mapper .Map <PushNotificationServiceModel, PushNotification.Models.Notification>(pushNotificationServiceModel); await _pushNotificationSender.SendPushNotificationAsync(deviceTokens, pushNotification); var emailMessage = new Message(emails, task.Title, "Time to start doing task\n" + "Description: " + task.Description + "\nStart at: " + task.StartTime.ToLocalTime()); await _emailSender.SendEmailAsync(emailMessage); break; } } }
public async Task RemoveAsync(Guid id) { DAL.Models.Entities.Task task = await _uow.GetRepository <DAL.Models.Entities.Task>() .GetByIdAsync(id); TaskServiceModel taskServiceModel = _mapper .Map <DAL.Models.Entities.Task, TaskServiceModel>(task); await _schedulerService.UnscheduleTaskById(id); await RemoveAsync(taskServiceModel); }
public async Task <TaskServiceModel> GetByIdAsync(Guid id) { DAL.Models.Entities.Task task = await _uow.GetRepository <DAL.Models.Entities.Task>() .GetFirstOrDefaultAsync( predicate: t => t.Id == id, include: query => query .Include(t => t.Calendar)); TaskServiceModel taskServiceModel = _mapper.Map <DAL.Models.Entities.Task, TaskServiceModel>(task); return(taskServiceModel); }
public async Task <TaskServiceModel> AddAsync(TaskCreationServiceModel entity) { DAL.Models.Entities.Task task = _mapper.Map <TaskCreationServiceModel, DAL.Models.Entities.Task>(entity); await _uow.GetRepository <DAL.Models.Entities.Task>().AddAsync(task); await _uow.SaveChangesAsync(); await _schedulerService.ScheduleTaskById(task.Id); TaskServiceModel taskServiceModel = _mapper.Map <DAL.Models.Entities.Task, TaskServiceModel>(task); return(taskServiceModel); }