public async Task <ActionResult> AddLogbookEntry(EditLogbookEntryViewModel model) { var userId = Guid.Parse(User.Identity.GetUserId()); var logbook = new LogbookEntryDTO(); logbook.LogbookId = model.LogbookId; logbook.ActivityId = model.ActivityId; logbook.Status = "STATUS/ACTIVE"; logbook.CreatedBy = userId; logbook.UpdatedBy = userId; logbook.CreateDate = DateTime.Now; logbook.UpdateDate = DateTime.Now; logbook.EntryDate = model.EntryDate; logbook.Notes = model.Notes; logbook.EntryFields = model.LogbookEntryFields ?? new LogbookEntryFieldDTO[0]; DataAccess.AddLogbookEntry(logbook, userId); if (logbook.LogbookEntryId == Guid.Empty) { ModelState.AddModelError("", "Failed to create entry"); } else { return(RedirectToAction("Logbook", "Logbook", new { logbookId = logbook.LogbookId })); } return(View(model)); }
public static void UpdateLogbookEntry(LogbookEntryDTO logbook) { using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Local"].ConnectionString)) { conn.Execute("UPDATE LogbookEntry " + "SET UpdatedBy = @UpdatedBy, UpdateDate = @UpdateDate, Status = @Status, EntryDate = @EntryDate, Notes = @Notes " + "WHERE LogbookEntryId = @LogbookEntryId", logbook); foreach (var f in logbook.EntryFields) { if (f.ActivityFieldOptionMappings != null) { foreach (var o in f.ActivityFieldOptionMappings.Where(d => !string.IsNullOrEmpty(d.OptionText))) { conn.Execute( "EXEC SelectFieldOption @LogbookEntryId, @FieldOptionId, @Selected", new { logbook.LogbookEntryId, o.FieldOptionId, o.Selected }); } } if (f.CustomText != null) { conn.Execute( "EXEC SetFieldCustomText @LogbookEntryId, @FieldId, @CustomText", new { logbook.LogbookEntryId, f.FieldId, f.CustomText }); } } } }
public static void AddLogbookEntry(LogbookEntryDTO entry, Guid userId) { entry.LogbookEntryId = Guid.NewGuid(); using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Local"].ConnectionString)) { // if there's no logbook set for this activity, create one (or find an existing one with the same activity) if (entry.LogbookId == Guid.Empty) { var logbook = GetLogbooks(userId).FirstOrDefault(l => l.DefaultActivityId == entry.ActivityId); if (logbook != null) { entry.LogbookId = logbook.LogbookId; } else { var guid = CreateLogbook(new LogbookDTO() { CreateDate = DateTime.Now, UpdateDate = DateTime.Now, DefaultActivityId = entry.ActivityId, Name = GetActivity(entry.ActivityId).Name, UserId = userId, CreatedBy = userId, UpdatedBy = userId, Status = "STATUS/ACTIVE" }); entry.LogbookId = guid; } } var entryId = conn.Query <Guid>("INSERT INTO LogbookEntry (LogbookEntryId, LogbookId, ActivityId, CreatedBy, UpdatedBy, CreateDate, UpdateDate, Status, EntryDate, Notes) " + "OUTPUT inserted.LogbookEntryId " + "VALUES (@LogbookEntryId, @LogbookId, @ActivityId, @CreatedBy, @UpdatedBy, @CreateDate, @UpdateDate, @Status, @EntryDate, @Notes)", entry).Single(); foreach (var f in entry.EntryFields) { if (f.ActivityFieldOptionMappings != null) { foreach (var o in f.ActivityFieldOptionMappings.Where(d => !string.IsNullOrEmpty(d.OptionText))) { conn.Execute( "INSERT INTO LogbookEntryFieldOption (LogbookEntryId, FieldOptionId, Selected) " + "VALUES (@LogbookEntryId, @FieldOptionId, @Selected)", new { LogbookEntryId = entryId, FieldOptionId = o.FieldOptionId, Selected = o.Selected }); } } if (!string.IsNullOrEmpty(f.CustomText)) { conn.Execute("INSERT INTO LogbookEntryFieldOptionCustom(LogbookEntryId, FieldId, CustomValue) " + "VALUES (@LogbookEntryId, @FieldId, @CustomValue)", new { LogbookEntryId = entryId, f.FieldId, CustomValue = f.CustomText }); } } } }
public async Task <ActionResult> EditLogbookEntry(EditLogbookEntryViewModel model) { var logbook = new LogbookEntryDTO(); logbook.LogbookId = model.LogbookId; logbook.LogbookEntryId = model.LogbookEntryId; logbook.ActivityId = model.ActivityId; logbook.Status = "STATUS/ACTIVE"; logbook.UpdatedBy = Guid.Parse(User.Identity.GetUserId()); logbook.UpdateDate = DateTime.Now; logbook.EntryDate = model.EntryDate; logbook.Notes = model.Notes; logbook.EntryFields = model.LogbookEntryFields ?? new LogbookEntryFieldDTO[0]; DataAccess.UpdateLogbookEntry(logbook); return(RedirectToAction("LogbookEntry", "Logbook", new { logbookEntryId = logbook.LogbookEntryId })); }
private LogbookEntryDTO GetDTOFromAppEntry(Guid userId, LogbookEntryForAppDTO entry) { var entryDTO = new LogbookEntryDTO(); entryDTO.LogbookEntryId = entry.logbookEntryId; entryDTO.EntryDate = entry.date; entryDTO.ActivityId = entry.activityId; entryDTO.CreateDate = DateTime.Now; entryDTO.CreatedBy = userId; entryDTO.UpdateDate = DateTime.Now; entryDTO.UpdatedBy = userId; entryDTO.LogbookId = entry.logbookId; entryDTO.Notes = entry.notes; entryDTO.Status = "STATUS/ACTIVE"; var fieldOptionsToSave = new List <LogbookEntryFieldDTO>(); foreach (var field in entry.selectedFieldOptions) { var dbField = DataAccess.GetField(field.fieldId); var dbFieldOption = DataAccess.GetFieldOption(field.fieldOptionId); if (dbFieldOption != null) { var fieldOptionMappings = new List <ActivityFieldOptionMapping> { new ActivityFieldOptionMapping() { FieldId = dbField.FieldId, ActivityId = dbField.ActivityId, FieldOptionId = field.fieldOptionId, FieldName = dbField.Name, OptionText = dbFieldOption.Text, Selected = true } }; fieldOptionsToSave.Add(new LogbookEntryFieldDTO() { Name = dbField.Name, FieldId = dbField.FieldId, LogbookId = entry.logbookId, Active = true, ActivityId = entry.activityId, ActivityFieldOptionMappings = fieldOptionMappings.ToArray() }); } } foreach (var field in entry.fieldCustomValues) { var dbField = DataAccess.GetField(field.fieldId); fieldOptionsToSave.Add(new LogbookEntryFieldDTO() { Name = dbField.Name, FieldId = dbField.FieldId, LogbookId = entry.logbookId, Active = true, ActivityId = entry.activityId, CustomText = field.customValue, ActivityFieldOptionMappings = new List <ActivityFieldOptionMapping>().ToArray() }); } entryDTO.EntryFields = fieldOptionsToSave.ToArray(); return(entryDTO); }