/// <summary> </summary> public static string get_field(field_types field_type) { string _ele = ""; _ele = get_field(field_type, null); return(_ele); }
/// <summary> </summary> public void edit_field(int id) { field_types field = ActiveRecordBase <field_types> .Find(id); PropertyBag["field"] = field; PropertyBag["p_models"] = ActiveRecordBase <posting_type> .FindAll(); string ele_str = fieldsService.getfieldmodel_dynamic(field); PropertyBag["nat_html_ele"] = ele_str; //string json = "{\"Items\":[{ \"Name\":\"Apple\", \"Price\":12.3 },{ \"Name\":\"Grape\", \"Price\":3.21 }],\"Date\":\"21/11/2010\"}"; var jss = new JavaScriptSerializer(); var ele = jss.Deserialize <Dictionary <string, dynamic> >(field.attr.ToString()); //elementSet ele = (elementSet)JsonConvert.DeserializeObject(field.attr.ToString(), typeof(elementSet)); //string ele_str = FieldsService.getfieldmodel(ele); PropertyBag["groups"] = ActiveRecordBase <user_group> .FindAll(); PropertyBag["users"] = ActiveRecordBase <appuser> .FindAll(); PropertyBag["html_ele"] = ele_str; PropertyBag["ele"] = ele; RenderView("../admin/fields/new"); }
public async Task FieldType_Update_DoesUpdate() { //Arrange field_types fieldType = new field_types { Description = Guid.NewGuid().ToString(), FieldType = Guid.NewGuid().ToString() }; await fieldType.Create(dbContext).ConfigureAwait(false); //Act fieldType.Description = Guid.NewGuid().ToString(); fieldType.FieldType = Guid.NewGuid().ToString(); await fieldType.Update(dbContext).ConfigureAwait(false); List <field_types> fieldTypes = dbContext.field_types.AsNoTracking().ToList(); //Assert Assert.NotNull(fieldTypes); Assert.AreEqual(20, fieldTypes.Count()); Assert.AreEqual(fieldType.Description, fieldTypes[19].Description); Assert.AreEqual(fieldType.Id, fieldTypes[19].Id); Assert.AreEqual(fieldType.FieldType, fieldTypes[19].FieldType); }
public async Task FieldType_Delete_DoesDelete() { //Arrange field_types fieldType = new field_types { Description = Guid.NewGuid().ToString(), FieldType = Guid.NewGuid().ToString() }; await fieldType.Create(dbContext).ConfigureAwait(false); //Act List <field_types> fieldTypes = dbContext.field_types.AsNoTracking().ToList(); //Assert before delete Assert.NotNull(fieldTypes); Assert.AreEqual(20, fieldTypes.Count()); //Assert after delete await fieldType.Delete(dbContext); fieldTypes = dbContext.field_types.AsNoTracking().ToList(); Assert.AreEqual(19, fieldTypes.Count()); }
/* dynamic based */ /// <summary> </summary> public static string getfieldmodel_dynamic(field_types field) { string ele = field.attr.ToString(); string _ele = field.attr.ToString(); _ele = getfieldmodel_dynamic(field, null); return(_ele); }
/// <summary> </summary> public void delete_field(int id) { field_types place_fields = ActiveRecordBase <field_types> .Find(id); Flash["message"] = "A field for places, <strong>" + place_fields.name + "</strong>, has been <strong>deleted</strong>."; ActiveRecordMediator <field_types> .Delete(place_fields); CancelLayout(); RedirectToAction("list"); }
/// <summary> </summary> public void new_field() { field_types field = new field_types(); PropertyBag["field"] = field; PropertyBag["p_models"] = ActiveRecordBase <posting_type> .FindAll(); PropertyBag["groups"] = ActiveRecordBase <user_group> .FindAll(); PropertyBag["users"] = ActiveRecordBase <appuser> .FindAll(); RenderView("../admin/fields/new"); }
/// <summary> </summary> public static string get_field(field_types field_type, dynamic item) { List <AbstractCriterion> typeEx = new List <AbstractCriterion>(); typeEx.Add(Expression.Eq("type", field_type)); if (!object.ReferenceEquals(item, null)) { typeEx.Add(Expression.Eq("owner", item.baseid)); } fields field = ActiveRecordBase <fields> .FindFirst(typeEx.ToArray()); string ele_str = fieldsService.getfieldmodel_dynamic(field_type, field == null ? null : field.value.ToString()); return(ele_str); }
/// <summary> </summary> public static string get_field_value(field_types field_type, posting _post) { string value = ""; List <AbstractCriterion> typeEx = new List <AbstractCriterion>(); typeEx.Add(Expression.Eq("type", field_type)); if (!object.ReferenceEquals(_post, null)) { typeEx.Add(Expression.Eq("owner", _post.baseid)); } fields field = ActiveRecordBase <fields> .FindFirst(typeEx.ToArray()); value = fieldsService.getFieldVal(field_type, field); return(value); }
/// <summary> </summary> public static string getFieldVal(field_types field_type, fields field) { dynamic value; string output = ""; var jss = new JavaScriptSerializer(); dynamic sel = null; if (field != null && !String.IsNullOrEmpty(field.value)) { sel = jss.Deserialize <Dictionary <string, dynamic> >(field.value.ToString()); } var ele = jss.Deserialize <Dictionary <string, dynamic> >(field_type.attr.ToString()); if (ele != null && sel != null && sel.TryGetValue("selections", out value) && ele["type"] == "dropdown") { foreach (dynamic _option in ele["options"]) { foreach (dynamic _val in sel["selections"]) { if (_val.TryGetValue("val", out value) && _option["val"] == _val["val"]) { output = _val["val"]; } } } } else if (sel != null && sel["selections"][0].TryGetValue("val", out value)) { foreach (dynamic _option in ele["options"]) { _option["selected"] = ""; if (sel["selections"][0]["val"] != "") { output = sel["selections"][0]["val"]; } } } return(output); }
public async Task FieldValues_Delete_DoesSetWorkflowStateToRemoved() { short shortMinValue = Int16.MinValue; short shortmaxValue = Int16.MaxValue; Random rnd = new Random(); bool randomBool = rnd.Next(0, 2) > 0; sites site = new sites { Name = Guid.NewGuid().ToString(), MicrotingUid = rnd.Next(1, 255) }; await site.Create(dbContext).ConfigureAwait(false); units unit = new units { CustomerNo = rnd.Next(1, 255), MicrotingUid = rnd.Next(1, 255), OtpCode = rnd.Next(1, 255), SiteId = site.Id }; await unit.Create(dbContext).ConfigureAwait(false); check_lists checklist = new check_lists { Color = Guid.NewGuid().ToString(), Custom = Guid.NewGuid().ToString(), Description = Guid.NewGuid().ToString(), Field1 = rnd.Next(1, 255), Field2 = rnd.Next(1, 255), Field4 = rnd.Next(1, 255), Field5 = rnd.Next(1, 255), Field6 = rnd.Next(1, 255), Field7 = rnd.Next(1, 255), Field8 = rnd.Next(1, 255), Field9 = rnd.Next(1, 255), Field10 = rnd.Next(1, 255), Label = Guid.NewGuid().ToString(), Repeated = rnd.Next(1, 255), ApprovalEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), CaseType = Guid.NewGuid().ToString(), DisplayIndex = rnd.Next(1, 255), DownloadEntities = (short)rnd.Next(shortMinValue, shortmaxValue), FastNavigation = (short)rnd.Next(shortMinValue, shortmaxValue), FolderName = Guid.NewGuid().ToString(), ManualSync = (short)rnd.Next(shortMinValue, shortmaxValue), MultiApproval = (short)rnd.Next(shortMinValue, shortmaxValue), OriginalId = Guid.NewGuid().ToString(), ReviewEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), DocxExportEnabled = randomBool, DoneButtonEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), ExtraFieldsEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), JasperExportEnabled = randomBool, QuickSyncEnabled = (short)rnd.Next(shortMinValue, shortmaxValue) }; await checklist.Create(dbContext).ConfigureAwait(false); entity_groups entityGroup = new entity_groups { Name = Guid.NewGuid().ToString(), Type = Guid.NewGuid().ToString(), MicrotingUid = Guid.NewGuid().ToString() }; await entityGroup.Create(dbContext).ConfigureAwait(false); field_types fieldType = new field_types { Description = Guid.NewGuid().ToString(), FieldType = Guid.NewGuid().ToString() }; await fieldType.Create(dbContext).ConfigureAwait(false); fields field = new fields { Color = Guid.NewGuid().ToString(), Custom = Guid.NewGuid().ToString(), Description = Guid.NewGuid().ToString(), Dummy = (short)rnd.Next(shortMinValue, shortmaxValue), Label = Guid.NewGuid().ToString(), Mandatory = (short)rnd.Next(shortMinValue, shortmaxValue), Multi = rnd.Next(1, 255), Optional = (short)rnd.Next(shortMinValue, shortmaxValue), Selected = (short)rnd.Next(shortMinValue, shortmaxValue), BarcodeEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), BarcodeType = Guid.NewGuid().ToString(), DecimalCount = rnd.Next(1, 255), DefaultValue = Guid.NewGuid().ToString(), DisplayIndex = rnd.Next(1, 255), GeolocationEnabled = (short)rnd.Next(shortMinValue, shortmaxValue), GeolocationForced = (short)rnd.Next(shortMinValue, shortmaxValue), GeolocationHidden = (short)rnd.Next(shortMinValue, shortmaxValue), IsNum = (short)rnd.Next(shortMinValue, shortmaxValue), MaxLength = rnd.Next(1, 255), MaxValue = Guid.NewGuid().ToString(), MinValue = Guid.NewGuid().ToString(), OriginalId = Guid.NewGuid().ToString(), QueryType = Guid.NewGuid().ToString(), ReadOnly = (short)rnd.Next(shortMinValue, shortmaxValue), SplitScreen = (short)rnd.Next(shortMinValue, shortmaxValue), UnitName = Guid.NewGuid().ToString(), StopOnSave = (short)rnd.Next(shortMinValue, shortmaxValue), KeyValuePairList = Guid.NewGuid().ToString(), CheckListId = checklist.Id, EntityGroupId = entityGroup.Id, FieldTypeId = fieldType.Id }; await field.Create(dbContext).ConfigureAwait(false); workers worker = new workers { Email = Guid.NewGuid().ToString(), FirstName = Guid.NewGuid().ToString(), LastName = Guid.NewGuid().ToString(), MicrotingUid = rnd.Next(1, 255) }; await worker.Create(dbContext).ConfigureAwait(false); cases theCase = new cases { Custom = Guid.NewGuid().ToString(), Status = rnd.Next(1, 255), Type = Guid.NewGuid().ToString(), CaseUid = Guid.NewGuid().ToString(), DoneAt = DateTime.Now, FieldValue1 = Guid.NewGuid().ToString(), FieldValue2 = Guid.NewGuid().ToString(), FieldValue3 = Guid.NewGuid().ToString(), FieldValue4 = Guid.NewGuid().ToString(), FieldValue5 = Guid.NewGuid().ToString(), FieldValue6 = Guid.NewGuid().ToString(), FieldValue7 = Guid.NewGuid().ToString(), FieldValue8 = Guid.NewGuid().ToString(), FieldValue9 = Guid.NewGuid().ToString(), FieldValue10 = Guid.NewGuid().ToString(), MicrotingUid = rnd.Next(shortMinValue, shortmaxValue), SiteId = site.Id, UnitId = unit.Id, WorkerId = worker.Id, CheckListId = checklist.Id, MicrotingCheckUid = rnd.Next(shortMinValue, shortmaxValue) }; await theCase.Create(dbContext).ConfigureAwait(false); uploaded_data uploadedData = new uploaded_data { Checksum = Guid.NewGuid().ToString(), Extension = Guid.NewGuid().ToString(), Local = (short)rnd.Next(shortMinValue, shortmaxValue), CurrentFile = Guid.NewGuid().ToString(), ExpirationDate = DateTime.Now, FileLocation = Guid.NewGuid().ToString(), FileName = Guid.NewGuid().ToString(), TranscriptionId = rnd.Next(1, 255), UploaderId = rnd.Next(1, 255), UploaderType = Guid.NewGuid().ToString() }; await uploadedData.Create(dbContext).ConfigureAwait(false); field_values fieldValue = new field_values { Accuracy = Guid.NewGuid().ToString(), Altitude = Guid.NewGuid().ToString(), Date = DateTime.Now, Heading = Guid.NewGuid().ToString(), Latitude = Guid.NewGuid().ToString(), Longitude = Guid.NewGuid().ToString(), Value = Guid.NewGuid().ToString(), CaseId = theCase.Id, DoneAt = DateTime.Now, FieldId = field.Id, WorkerId = worker.Id, CheckListId = checklist.Id, UploadedDataId = uploadedData.Id }; await fieldValue.Create(dbContext).ConfigureAwait(false); //Act DateTime?oldUpdatedAt = fieldValue.UpdatedAt; await fieldValue.Delete(dbContext); List <field_values> fieldValues = dbContext.field_values.AsNoTracking().ToList(); List <field_value_versions> fieldValueVersions = dbContext.field_value_versions.AsNoTracking().ToList(); Assert.NotNull(fieldValues); Assert.NotNull(fieldValueVersions); Assert.AreEqual(1, fieldValues.Count()); Assert.AreEqual(2, fieldValueVersions.Count()); Assert.AreEqual(fieldValue.CreatedAt.ToString(), fieldValues[0].CreatedAt.ToString()); Assert.AreEqual(fieldValue.Version, fieldValues[0].Version); // Assert.AreEqual(fieldValue.UpdatedAt.ToString(), fieldValues[0].UpdatedAt.ToString()); Assert.AreEqual(fieldValues[0].WorkflowState, Constants.WorkflowStates.Removed); Assert.AreEqual(fieldValue.Id, fieldValues[0].Id); Assert.AreEqual(fieldValue.Accuracy, fieldValues[0].Accuracy); Assert.AreEqual(fieldValue.Date.ToString(), fieldValues[0].Date.ToString()); Assert.AreEqual(fieldValue.Heading, fieldValues[0].Heading); Assert.AreEqual(fieldValue.Latitude, fieldValues[0].Latitude); Assert.AreEqual(fieldValue.Longitude, fieldValues[0].Longitude); Assert.AreEqual(fieldValue.Value, fieldValues[0].Value); Assert.AreEqual(fieldValue.CaseId, theCase.Id); Assert.AreEqual(fieldValue.DoneAt.ToString(), fieldValues[0].DoneAt.ToString()); Assert.AreEqual(fieldValue.FieldId, field.Id); Assert.AreEqual(fieldValue.WorkerId, worker.Id); Assert.AreEqual(fieldValue.CheckListId, checklist.Id); Assert.AreEqual(fieldValue.UploadedDataId, uploadedData.Id); //Old Version Assert.AreEqual(fieldValue.CreatedAt.ToString(), fieldValueVersions[0].CreatedAt.ToString()); Assert.AreEqual(1, fieldValueVersions[0].Version); // Assert.AreEqual(oldUpdatedAt.ToString(), fieldValueVersions[0].UpdatedAt.ToString()); Assert.AreEqual(fieldValueVersions[0].WorkflowState, Constants.WorkflowStates.Created); Assert.AreEqual(fieldValue.Id, fieldValueVersions[0].FieldId); Assert.AreEqual(fieldValue.Accuracy, fieldValueVersions[0].Accuracy); Assert.AreEqual(fieldValue.Date.ToString(), fieldValueVersions[0].Date.ToString()); Assert.AreEqual(fieldValue.Heading, fieldValueVersions[0].Heading); Assert.AreEqual(fieldValue.Latitude, fieldValueVersions[0].Latitude); Assert.AreEqual(fieldValue.Longitude, fieldValueVersions[0].Longitude); Assert.AreEqual(fieldValue.Value, fieldValueVersions[0].Value); Assert.AreEqual(theCase.Id, fieldValueVersions[0].CaseId); Assert.AreEqual(fieldValue.DoneAt.ToString(), fieldValueVersions[0].DoneAt.ToString()); Assert.AreEqual(field.Id, fieldValueVersions[0].FieldId); Assert.AreEqual(worker.Id, fieldValueVersions[0].WorkerId); Assert.AreEqual(checklist.Id, fieldValueVersions[0].CheckListId); Assert.AreEqual(uploadedData.Id, fieldValueVersions[0].UploadedDataId); //New Version Assert.AreEqual(fieldValue.CreatedAt.ToString(), fieldValueVersions[1].CreatedAt.ToString()); Assert.AreEqual(2, fieldValueVersions[1].Version); // Assert.AreEqual(fieldValue.UpdatedAt.ToString(), fieldValueVersions[1].UpdatedAt.ToString()); Assert.AreEqual(fieldValueVersions[1].WorkflowState, Constants.WorkflowStates.Removed); Assert.AreEqual(fieldValue.Id, fieldValueVersions[1].FieldId); Assert.AreEqual(fieldValue.Accuracy, fieldValueVersions[1].Accuracy); Assert.AreEqual(fieldValue.Date.ToString(), fieldValueVersions[1].Date.ToString()); Assert.AreEqual(fieldValue.Heading, fieldValueVersions[1].Heading); Assert.AreEqual(fieldValue.Latitude, fieldValueVersions[1].Latitude); Assert.AreEqual(fieldValue.Longitude, fieldValueVersions[1].Longitude); Assert.AreEqual(fieldValue.Value, fieldValueVersions[1].Value); Assert.AreEqual(theCase.Id, fieldValueVersions[1].CaseId); Assert.AreEqual(fieldValue.DoneAt.ToString(), fieldValueVersions[1].DoneAt.ToString()); Assert.AreEqual(field.Id, fieldValueVersions[1].FieldId); Assert.AreEqual(worker.Id, fieldValueVersions[1].WorkerId); Assert.AreEqual(checklist.Id, fieldValueVersions[1].CheckListId); Assert.AreEqual(uploadedData.Id, fieldValueVersions[1].UploadedDataId); }
/// <summary> </summary> public void update_field( [ARDataBind("field", Validate = true, AutoLoad = AutoLoadBehavior.NewRootInstanceIfInvalidKey)] field_types field, [DataBind("ele", Validate = false)] elementSet ele, [ARDataBind("template", Validate = true, AutoLoad = AutoLoadBehavior.NewRootInstanceIfInvalidKey)] posting template, [ARDataBind("note", Validate = true, AutoLoad = AutoLoadBehavior.NewRootInstanceIfInvalidKey)] posting note, string ele_type, int placemodel, bool ajaxed_update, string apply, string cancel ) { if (cancel != null) { RedirectToAction("list"); return; } //dynamic value; var jss = new JavaScriptSerializer(); ActiveRecordMediator <fields> .Save(field); field.type = this.GetType().Name; field.set = ActiveRecordBase <posting_type> .Find(placemodel).baseid; // NOTE THIS IS THE ONLY REASON WE CAN ABSTRACT YET... FIX? ele.attr.name = "fields[" + field.baseid + "]"; //+ (ele.type == "dropdown"?"[]":""); ele.options.RemoveAt(ele.options.Count - 1); //to remove ele.options[9999] at the end string tmpNull = null; dynamic jsonstr = new { type = ele.type, label = ((ele.label == "") ? field.name : ele.label), attr = ele.attr, events = tmpNull, options = ele.options }; var json = jss.Serialize(jsonstr); field.attr = json; ActiveRecordMediator <fields> .Save(field); posting tmpTemplate = new posting(); if (template.baseid == 0) { tmpTemplate = new posting() { alias = template.alias.Replace("__TEMP__", field.baseid.ToString()), post_type = template.post_type, content = template.content }; } else { tmpTemplate = template; } ActiveRecordMediator <posting> .Save(tmpTemplate); field.template = tmpTemplate; posting tmpNotes = new posting(); if (note.baseid == 0) { tmpNotes = new posting() { alias = note.alias.Replace("__TEMP__", field.baseid.ToString()), post_type = note.post_type, content = note.content }; } else { tmpNotes = note; } ActiveRecordMediator <posting> .Save(tmpNotes); field.notes = tmpNotes; ActiveRecordMediator <fields> .Save(field); if (apply != null || ajaxed_update) { if (field.baseid > 0) { RedirectToUrl("edit_field.castle?id=" + field.baseid); return; } else { RedirectToReferrer(); } } else { RedirectToAction("list"); } }
/// <summary> </summary> public static string getfieldmodel_dynamic(field_types field, string select_val) { string ele = field.attr.ToString(); var jss = new JavaScriptSerializer(); var dyn_ele = jss.Deserialize <Dictionary <string, dynamic> >(ele); var dyn_select_val = new Dictionary <string, dynamic>(); dyn_select_val = String.IsNullOrWhiteSpace(select_val) ? dyn_select_val : jss.Deserialize <Dictionary <string, dynamic> >(select_val); // lets set up the attrs for the element SortedDictionary <string, string> attrs = new SortedDictionary <string, string>(); dynamic value; if (dyn_ele.TryGetValue("attr", out value)) { attrs = attrbase_dynamic(attrs, dyn_ele); } if (dyn_ele.TryGetValue("events", out value)) { attrs = eventbase_dynamic(attrs, dyn_ele); } if (dyn_select_val.TryGetValue("selections", out value)) { dyn_ele = selectedVal_dynamic(dyn_select_val, dyn_ele); } string _ele = String.Empty; string type = dyn_ele["type"]; switch (type) { case "dropdown": { _ele = fieldsService.renderSelect_dynamic(dyn_ele, attrs); break; } case "textinput": { _ele = fieldsService.renderTextInput_dynamic(dyn_ele, attrs); break; } case "textarea": { _ele = fieldsService.renderTextarera_dynamic(dyn_ele, attrs); break; } case "checkbox": { _ele = fieldsService.renderCheckbox_dynamic(dyn_ele, attrs); break; } case "slider": { _ele = ""; break; // FieldsService.renderSlider_dynamic(dyn_ele, attrs); break; } } if (!String.IsNullOrWhiteSpace(field.template.content)) { Hashtable parambag = new Hashtable(); parambag.Add("element_html", _ele); parambag = objectService.marge_params(attrs, parambag); if (!String.IsNullOrWhiteSpace(field.notes.content)) { parambag.Add("notes", field.notes.content); } parambag.Add("field", field); /* now process the content template */ String laidout = renderService.simple_field_layout(field.template.content, field.template, parambag); _ele = laidout; } // Return the result. return(_ele); }
public fields CreateField(short?barcodeEnabled, string barcodeType, check_lists checkList, string color, string custom, int?decimalCount, string defaultValue, string description, int?displayIndex, short?dummy, field_types ft, short?geolocationEnabled, short?geolocationForced, short?geolocationHidden, short?isNum, string label, short?mandatory, int maxLength, string maxValue, string minValue, short?multi, short?optional, string queryType, short?readOnly, short?selected, short?splitScreen, short?stopOnSave, string unitName, int version) { fields f = new fields(); f.field_type_id = ft.id; f.barcode_enabled = barcodeEnabled; f.barcode_type = barcodeType; f.check_list_id = checkList.id; f.color = color; f.created_at = DateTime.Now; f.custom = custom; f.decimal_count = decimalCount; f.default_value = defaultValue; f.description = description; f.display_index = displayIndex; f.dummy = dummy; f.geolocation_enabled = geolocationEnabled; f.geolocation_forced = geolocationForced; f.geolocation_hidden = geolocationHidden; f.is_num = isNum; f.label = label; f.mandatory = mandatory; f.max_length = maxLength; f.max_value = maxValue; f.min_value = minValue; f.multi = multi; f.optional = optional; f.query_type = queryType; f.read_only = readOnly; f.selected = selected; f.split_screen = splitScreen; f.stop_on_save = stopOnSave; f.unit_name = unitName; f.updated_at = DateTime.Now; f.version = version; f.workflow_state = Constants.WorkflowStates.Created; DbContext.fields.Add(f); DbContext.SaveChanges(); Thread.Sleep(2000); return(f); }
public async Task <fields> CreateField(short?barcodeEnabled, string barcodeType, check_lists checkList, string color, string custom, int?decimalCount, string defaultValue, string description, int?displayIndex, short?dummy, field_types ft, short?geolocationEnabled, short?geolocationForced, short?geolocationHidden, short?isNum, string label, short?mandatory, int maxLength, string maxValue, string minValue, short?multi, short?optional, string queryType, short?readOnly, short?selected, short?splitScreen, short?stopOnSave, string unitName, int version) { fields f = new fields(); f.FieldTypeId = ft.Id; f.BarcodeEnabled = barcodeEnabled; f.BarcodeType = barcodeType; f.CheckListId = checkList.Id; f.Color = color; f.CreatedAt = DateTime.UtcNow; f.Custom = custom; f.DecimalCount = decimalCount; f.DefaultValue = defaultValue; f.Description = description; f.DisplayIndex = displayIndex; f.Dummy = dummy; f.GeolocationEnabled = geolocationEnabled; f.GeolocationForced = geolocationForced; f.GeolocationHidden = geolocationHidden; f.IsNum = isNum; f.Label = label; f.Mandatory = mandatory; f.MaxLength = maxLength; f.MaxValue = maxValue; f.MinValue = minValue; f.Multi = multi; f.Optional = optional; f.QueryType = queryType; f.ReadOnly = readOnly; f.Selected = selected; f.SplitScreen = splitScreen; f.StopOnSave = stopOnSave; f.UnitName = unitName; f.UpdatedAt = DateTime.UtcNow; f.Version = version; f.WorkflowState = Constants.WorkflowStates.Created; dbContext.fields.Add(f); await dbContext.SaveChangesAsync().ConfigureAwait(false); Thread.Sleep(2000); return(f); }