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 List <FieldValueVM> GetFieldValueVmOfPublication(Publication pub) { List <FieldValueVM> fvl = new List <FieldValueVM>(); List <FieldValue> fvm = (from p in db.Publications join fv in db.FieldValues on p.PublicationId equals fv.PublicationId where p.PublicationId == pub.PublicationId select fv).ToList(); foreach (var item in fvm) { PublicationField pf = (from f in db.PublicationFields where f.PublicationFieldId == item.PublicationFieldId select f).ToList()[0]; fvl.Add(new FieldValueVM() { FieldId = item.FieldValueId, FieldType = pf.Type, Name = pf.Name, Value = item.Value }); } return(fvl); }
public bool EditPublication(SavePublicationVM savePublication) { try { Publication pub = (from f in db.Publications where f.PublicationId == savePublication.Id select f).ToArray()[0]; List <AuthorPublication> aps = (from a in db.AuthorPublications where a.PublicationId == pub.PublicationId select a).ToList(); foreach (var item in aps) { db.AuthorPublications.Remove(item); } List <BranchOfKnowledgePublication> bons = (from b in db.BranchOfKnowledgePublications where b.PublicationId == pub.PublicationId select b).ToList(); foreach (var item in bons) { db.BranchOfKnowledgePublications.Remove(item); } List <FieldValue> fieldValues = (from f in db.FieldValues where f.PublicationId == pub.PublicationId select f).ToList(); List <FieldValueVM> fieldsValuesVM = GetFieldValueVmOfPublication(pub); List <FieldValueVM> correctValues = new List <FieldValueVM>(); foreach (var item in fieldsValuesVM) { bool temp = false; foreach (var item1 in savePublication.FieldsValue) { if (item.Name == item1.Name) { correctValues.Add(item1); temp = true; } } if (!temp) { correctValues.Add(item); } } foreach (var item in fieldValues) { db.FieldValues.Remove(item); } foreach (var item in correctValues) { PublicationField pf = findFieldByName(item.Name); db.FieldValues.Add(new FieldValue() { PublicationId = pub.PublicationId, PublicationFieldId = pf.PublicationFieldId, Value = item.FieldType != FieldType.Boolean?item.Value:item.isChecked.ToString() }); } foreach (var item in savePublication.Authors) { if (!IsAuthorExist(item)) { db.Authors.Add(item); db.AuthorPublications.Add(new AuthorPublication() { Author = item, Publication = pub }); } else { db.AuthorPublications.Add(new AuthorPublication() { Author = GetTheSameAuthor(item), Publication = pub }); } } foreach (var item in savePublication.BranchesOfKnowledge) { if (!IsBranchExist(item)) { db.BranchOfKnowledges.Add(item); db.BranchOfKnowledgePublications.Add(new BranchOfKnowledgePublication() { BranchOfKnowledge = item, Publication = pub }); } else { db.BranchOfKnowledgePublications.Add(new BranchOfKnowledgePublication() { BranchOfKnowledge = GetTheSameBranch(item), Publication = pub }); } } db.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public bool AddPublication(SavePublicationVM savePublication) { try { Publication pub = new Publication() { CreationDate = DateTime.Now, Title = savePublication.Title, TemplateId = savePublication.TemplateId }; List <FieldValue> filedsValue = new List <FieldValue>(); foreach (FieldValueVM item in savePublication.FieldsValue) { PublicationField publicationField = findFieldByName(item.Name); db.FieldValues.Add(new FieldValue() { Publication = pub, Value = item.FieldType != FieldType.Boolean?item.Value:item.isChecked.ToString(), PublicationField = publicationField }); } db.Publications.Add(pub); foreach (var item in savePublication.Authors) { if (!IsAuthorExist(item)) { db.Authors.Add(item); db.AuthorPublications.Add(new AuthorPublication() { Author = item, Publication = pub }); } else { db.AuthorPublications.Add(new AuthorPublication() { Author = GetTheSameAuthor(item), Publication = pub }); } } foreach (var item in savePublication.BranchesOfKnowledge) { if (!IsBranchExist(item)) { db.BranchOfKnowledges.Add(item); db.BranchOfKnowledgePublications.Add(new BranchOfKnowledgePublication() { BranchOfKnowledge = item, Publication = pub }); } else { db.BranchOfKnowledgePublications.Add(new BranchOfKnowledgePublication() { BranchOfKnowledge = GetTheSameBranch(item), Publication = pub }); } } db.SaveChanges(); return(true); } catch (Exception) { return(false); } }
public PublicationAttributeGenerator(PublicationField field, int randomCount) { Field = field; RandomValue = field.GetRandomValue(randomCount); }