/// <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(); }
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); } }
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); }
/// <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(); } } }
/// <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); }
/// <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); }
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); }
public IndexVM GetIndexVMWithSelectedList(IndexVM indexVM, ListPOCO selectedList) { indexVM.SelectedListVM = new ListVM(selectedList); selectedList.ColumnPOCOList.ForEach(c => addColumnStrategies[c.GetType()].Invoke(indexVM, c)); return(indexVM); }
public ListVM(ListPOCO listPOCO) { Title = listPOCO.Title; ServerRelativeUrl = listPOCO.ServerRelativeUrl; }