Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
 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);
 }