Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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();
        }