public void AddOrUpdate(NoteDto noteDto) { if (noteDto == null) { throw new Exception("NoteDto NULL"); } var entity = _context.Notes. FirstOrDefault(x => x.Id == noteDto.Id); if (entity == null) { entity = new Note(); } entity.text = noteDto.text; entity.Title = noteDto.Title; if (entity.Id == 0) { entity.CreatedDate = DateTime.Now.ToUniversalTime(); } // TODO set real creator if (entity.Id == 0) { DAL.Users.User creator = _userService.GetCurrentUser(); entity.Creator = creator ?? throw new Exception("Creator user id null"); } _userService.SetPasswordHashAndSaltUnModified(entity.Creator); if (entity.Id == 0) { _context.Notes.Add(entity); } if (noteDto.ParentNoteId.HasValue) { var parentNote = _context.Notes.FirstOrDefault(x => x.Id == noteDto.ParentNoteId.Value); if (parentNote != null) { _userService.SetPasswordHashAndSaltUnModified(parentNote.Creator); entity.Parent = parentNote; } } _context.SaveChanges(); noteDto.Id = entity.Id; }
public void AddUserRegistrationNotification(DAL.Users.User user) { var notification = new UserRegistrationNotification(_config); notification.ActivationKey = user.ActivationKey; notification.UserName = user.Name; var entity = notification.GetNotificationEntity(); entity.ReceiverEmail = user.Email; entity.State = DAL.enums.EmailStateEnum.NotSent; _context.Notifications.Add(entity); _context.SaveChanges(); }
public void AddOrUpdate(PlanTaskDto taskForEdit) { //_context.ChangeTracker.LazyLoadingEnabled = false; //_context.ChangeTracker.AutoDetectChangesEnabled = false; if (taskForEdit == null) { throw new Exception("PlanTaskDto NULL"); } var entity = _context.TasksAndTargets.Include(x => x.Creator). FirstOrDefault(x => x.Id == taskForEdit.Id); if (entity == null) { entity = new PlanTask(); } if (taskForEdit.makeReminder.HasValue) { if (taskForEdit.makeReminder.Value) { entity.RemindAt = taskForEdit.RemindAt.ToUtc(); } else { entity.RemindAt = null; } } entity.IsTask = taskForEdit.IsTask; if (taskForEdit.ParentTaskId.HasValue) { var parentEntity = _context.TasksAndTargets. FirstOrDefault(x => x.Id == taskForEdit.ParentTaskId.Value); if (parentEntity != null) { entity.Parent = parentEntity; } } entity.SelectedForToday = taskForEdit.SelectedForToday; entity.Status = taskForEdit.Status; entity.Title = taskForEdit.Title; entity.Description = taskForEdit.Description; // Date changed - reset status if (entity.PlannedBeginDate != taskForEdit.PlannedBeginDate.ToUtc()) { entity.PlannedDateProcessed = taskForEdit.PlannedDateProcessed = false; } entity.PlannedBeginDate = taskForEdit.PlannedBeginDate.ToUtc(); entity.PlannedDateProcessed = taskForEdit.PlannedDateProcessed; entity.Deadline = taskForEdit.Deadline.ToUtc(); entity.CompleteDate = taskForEdit.CompleteDate.ToUtc(); if (entity.Id == 0) { entity.CreatedDate = DateTime.Now.ToUniversalTime(); } // TODO set real creator if (entity.Id == 0) { DAL.Users.User creator = _userService.GetCurrentUser(); entity.Creator = creator ?? throw new Exception("Creator user id null"); } _userService.SetPasswordHashAndSaltUnModified(entity.Creator); _context.Entry(entity.Creator).State = EntityState.Unchanged; bool taskOrTargetCreated = false; if (entity.Id == 0) { taskOrTargetCreated = true; _context.TasksAndTargets.Add(entity); } _context.SaveChanges(); _activityService.LogUserActivity(entity, taskOrTargetCreated ? DAL.enums.ActionTypeEnum.Added : DAL.enums.ActionTypeEnum.Edited); taskForEdit.Id = entity.Id; }