public int?AddNewField(AddFieldVM vm) { int?res = null; try { if (vm.Id == -1) { PublicationField field = new PublicationField { Name = vm.Name, Type = vm.Type }; if (field.Type == FieldType.Select && vm.SelectValues != null) { Dictionary <int, string> values = new Dictionary <int, string>(); int i = 0; foreach (string value in vm.SelectValues) { values.Add(i++, value); } field.FieldData = Newtonsoft.Json.JsonConvert.SerializeObject(values); } context.PublicationFields.Add(field); context.SaveChanges(); res = field.PublicationFieldId; } else { PublicationField field = context.PublicationFields.FirstOrDefault(f => f.PublicationFieldId == vm.Id); if (field != null) { field.Name = vm.Name; if (field.Type == FieldType.Select && vm.SelectValues != null) { Dictionary <int, string> values = new Dictionary <int, string>(); int i = 0; foreach (string value in vm.SelectValues) { values.Add(i++, value); } field.FieldData = Newtonsoft.Json.JsonConvert.SerializeObject(values); } context.Entry(field).State = EntityState.Modified; context.SaveChanges(); res = field.PublicationFieldId; } } } catch { } return(res); }
public IActionResult AddNewField([FromBody] AddFieldVM vm) { if (service.isFieldNameValid(vm)) { int?newId = service.AddNewField(vm); if (newId.HasValue) { return(PartialView("TemplateRow", new FieldVM() { AttachId = -1, FieldId = newId.Value, Type = vm.Type })); } else { return(StatusCode(500, "Wyst¹pi³ b³¹d w zapisie!")); } } else { return(StatusCode(500, "Istnieje pole o podanej nazwie.")); } }
public bool isFieldNameValid(AddFieldVM vm) { return(!context.PublicationFields.Any(f => f.Type == vm.Type && f.Name.ToLower() == vm.Name.ToLower() && f.PublicationFieldId != vm.Id)); }