Пример #1
0
        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));
        }
Пример #2
0
 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 });
             }
         }
     }
 }
Пример #3
0
        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 });
                    }
                }
            }
        }
Пример #4
0
        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 }));
        }
Пример #5
0
        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);
        }