public async Task SubmitFormDataAsync(FormAccessLevel accessLevel, Guid id, string data) { var entry = await GetFormEntryAsync(accessLevel, id); if (entry.Status == FormStatus.Open) { entry.Data = data; entry.Status = FormStatus.Submitted; entry.SubmissionDate = DateTime.UtcNow; _db.Update(entry); if (entry.FormKey == "ocif") { //var ocif = await GetOCIFAsync(id); //if (ocif != null) //{ // ocif.Data = data; // _db.Update(ocif); //} //else //{ // ocif = new FormOCIF(); // ocif.Id = id; // ocif.Data = data; // _db.Add(ocif); //} var ocif = await GetOCIFAsync(id); if (ocif != null) { ocif.JSONData = data; _uiPathDb.Update(ocif); } else { ocif = new OCIF(); ocif.ID = id; ocif.JSONData = data; await _uiPathDb.AddAsync(ocif); } await _uiPathDb.SaveChangesAsync(); } await _db.SaveChangesAsync(); await ProcessForm(entry); } }
public async Task <Guid> StartNewFormAsync(FormAccessLevel accessLevel, string key, PreFillLookupCriteria criteria) { var form = await _db.Forms.FirstOrDefaultAsync(f => f.AccessLevel == accessLevel && f.Key == key); if (form is null) { throw new Exception("No matching form"); } var entry = new FormEntry { FormKey = form.Key, PrefillCriteria = criteria, Status = FormStatus.Open, }; var preFillProcessors = await _db.PreFillProcessors.Where(p => p.FormKey == key).ToArrayAsync(); foreach (var processor in preFillProcessors) { await _preFillProcessor.ProcessFormAsync(processor, entry); } if (form.Key == "ocif") { //var ocif = new FormOCIF //{ // Id = entry.Id, // Data = entry.Data, //}; //await _db.AddAsync(ocif); var ocif = new OCIF { ID = entry.Id, JSONData = entry.Data }; await _uiPathDb.AddAsync(ocif); await _uiPathDb.SaveChangesAsync(); } await _db.AddAsync(entry); await _db.SaveChangesAsync(); return(entry.Id); }
public async Task UpdateFormDataAsync(FormAccessLevel accessLevel, Guid id, string data) { var entry = await GetFormEntryAsync(accessLevel, id); entry.Data = data; _db.Update(entry); if (entry.FormKey == "ocif") { //var ocif = await GetOCIFAsync(id); //if (ocif != null) //{ // ocif.Data = data; // _db.Update(ocif); //} //else //{ // ocif = new FormOCIF(); // ocif.Id = id; // ocif.Data = data; // await _db.AddAsync(ocif); //} var ocif = await GetOCIFAsync(id); if (ocif != null) { ocif.JSONData = data; _uiPathDb.Update(ocif); } else { ocif = new OCIF(); ocif.ID = id; ocif.JSONData = data; await _uiPathDb.AddAsync(ocif); } await _uiPathDb.SaveChangesAsync(); } await _db.SaveChangesAsync(); }