Example #1
0
        /// <summary>
        /// Creates one entry in SP List.
        /// </summary>
        /// <param name="entry">entry to create</param>
        /// <param name="spList">list to which entry should be saved</param>
        /// <param name="listPOCO">poco model of the list</param>
        private void SaveEntry(EntryPOCO entry, List spList, ListPOCO listPOCO)
        {
            var item = spList.AddItem(new ListItemCreationInformation());

            foreach (var columnPOCO in listPOCO.ColumnPOCOList)
            {
                item[columnPOCO.InternalName] = entry.GetValue(columnPOCO);
            }
            item.Update();
        }
Example #2
0
 internal void SyncModels(ListPOCO listPOCO)
 {
     foreach (var columnVM in AllColumnVMs)
     {
         var columnPOCO = listPOCO.ColumnPOCOList.FirstOrDefault(c => c.InternalName == columnVM.InternalName);
         if (columnPOCO == null)
         {
             throw new GUIVisibleException("Nie znaleziono kolumny o nazwie " + columnVM.InternalName);
         }
         columnVM.SyncModels(columnPOCO);
     }
 }
Example #3
0
        public void ListVM_FromPOCO()
        {
            //given
            var listPOCO = new ListPOCO()
            {
                Title             = "list test title",
                ServerRelativeUrl = "server realtive url of list"
            };
            //when
            var listVM = new ListVM(listPOCO);

            //then
            Assert.AreEqual(listVM.Title, listPOCO.Title);
            Assert.AreEqual(listVM.ServerRelativeUrl, listPOCO.ServerRelativeUrl);
        }
Example #4
0
 /// <summary>
 /// Used for saving collection of entries to SharePoint list.
 /// </summary>
 /// <param name="entries">Collection of entries to save.</param>
 /// <param name="listPOCO">Target list for entries to be saved to.</param>
 public void Save(IEnumerable <EntryPOCO> entries, ListPOCO listPOCO)
 {
     if (entries.Any())
     {
         using (var context = contextHelper.ClientContext)
         {
             var list = GetList(listPOCO.Title, context);
             foreach (var entry in entries)
             {
                 SaveEntry(entry, list, listPOCO);
             }
             context.ExecuteQuery();
         }
     }
 }
Example #5
0
        /// <summary>
        /// Generates entries for list.
        /// </summary>
        /// <param name="list">List for which entries will be generated..</param>
        /// <param name="recordsCount">Number of entries to generate.</param>
        /// <returns>Generated entries.</returns>
        public IEnumerable <EntryPOCO> GenerateData(ListPOCO list, int recordsCount)
        {
            var result = new List <EntryPOCO>(recordsCount);
            Dictionary <ColumnPOCO, List <object> > columnsRawData = GetColumnsRawData(list, recordsCount);

            for (int i = 0; i < recordsCount; ++i)
            {
                var entry = new EntryPOCO();
                foreach (var dataDictionaryEntry in columnsRawData)
                {
                    entry.SetValue(
                        dataDictionaryEntry.Key,
                        dataDictionaryEntry.Value[i]);
                }
                result.Add(entry);
            }
            return(result);
        }
Example #6
0
        /// <summary>
        /// Gets data generated for each column.
        /// </summary>
        /// <param name="list">List that contains columns for which data is to be generated.</param>
        /// <param name="recordsCount">Count of entries to generate</param>
        /// <returns>Mapping of data for each column.</returns>
        private Dictionary <ColumnPOCO, List <object> > GetColumnsRawData(ListPOCO list, int recordsCount)
        {
            Dictionary <ColumnPOCO, List <object> > allColumnsRawData = new Dictionary <ColumnPOCO, List <object> >();

            foreach (var column in list.ColumnPOCOList)
            {
                var columnGenerators         = columnDataGeneratorFactory.GetDataGenerators(column);
                var entriesCountPerGenerator = GetEntriesCountPerGenerator(columnGenerators, recordsCount);
                var columnRawData            = new List <object>();
                foreach (var generator in columnGenerators)
                {
                    var entryCount       = entriesCountPerGenerator[generator];
                    var generatorRawData = generator.GenerateData(column, entryCount);
                    columnRawData.AddRange(generatorRawData);
                }
                columnRawData = columnRawData.OrderBy(x => RANDOM.Next()).ToList();
                allColumnsRawData.Add(column, columnRawData);
            }

            return(allColumnsRawData);
        }
Example #7
0
        public void GetIndexVMWithSelectedList_AssignsProperties()
        {
            //given
            var list = new ListPOCO()
            {
                Title          = "test title",
                ColumnPOCOList = new List <Model.Column.ColumnPOCO>()
                {
                    new NumberColumnPOCO()
                    {
                        InternalName = "column pooc name"
                    }
                }
            };
            var indexVM = new IndexVM();

            //when
            indexVM = indexVMFactory.GetIndexVMWithSelectedList(indexVM, list);
            //then
            Assert.AreEqual(list.Title, indexVM.SelectedListVM.Title);
            Assert.AreEqual(indexVM.NumberColumnVMs[0].InternalName, list.ColumnPOCOList[0].InternalName);
        }
Example #8
0
 public IndexVM GetIndexVMWithSelectedList(IndexVM indexVM, ListPOCO selectedList)
 {
     indexVM.SelectedListVM = new ListVM(selectedList);
     selectedList.ColumnPOCOList.ForEach(c => addColumnStrategies[c.GetType()].Invoke(indexVM, c));
     return(indexVM);
 }
Example #9
0
 public ListVM(ListPOCO listPOCO)
 {
     Title             = listPOCO.Title;
     ServerRelativeUrl = listPOCO.ServerRelativeUrl;
 }