public void InsertData() { try { List oListData = ClientContext.Web.Lists.GetByTitle("Centrets lokaler i tal"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Query><ViewFields><FieldRef Name='Title' /><FieldRef Name='Author' /><FieldRef Name='Editor' /><FieldRef Name='MaxPeopleAtTable' /><FieldRef Name='MaxPeopleAtUTable' /><FieldRef Name='MaxPeopleAtSchoolBoard' /><FieldRef Name='Created' /><FieldRef Name='Modified' /><FieldRef Name='MaxPeopleByIsland' /><FieldRef Name='MaxPeopleInOneRoom' /><FieldRef Name='DivideRoom' /><FieldRef Name='Remarks' /><FieldRef Name='SiteCIIDLookup' /></ViewFields></View>"; ListItemCollection oListDataItem = oListData.GetItems(camlQuery); ClientContext.Load(oListDataItem); ClientContext.ExecuteQuery(); var contentStatusId = Extension.GetApprovedConentStatusId(DKBSDbContext); foreach (ListItem oItem in oListDataItem) { CRMPartner partner = DKBSDbContext.CRMPartner.FirstOrDefault(p => p.AccountId == oItem.GetLookupId("SiteCIIDLookup")); if (partner == null) { ErrorCount += 1; log.Error($"Partner not found SharepointId:{oItem.Id}"); continue; } try { log.Info($"Partner room info started. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}"); PartnerCenterRoomInfo pRoom = new PartnerCenterRoomInfo() { RoomName = oItem["Title"].ToSharepointString(), SharepointId = oItem.GetId(), MaxPersonsAtMeetingTable = oItem["MaxPeopleAtTable"].ToInt(), MaxPersonsAtRowOfChairs = oItem["MaxPeopleInOneRoom"].ToInt(), MaxPersonsAtSchoolTable = oItem["MaxPeopleAtSchoolBoard"].ToInt(), MaxPersonsAtUTable = oItem["MaxPeopleAtUTable"].ToInt(), MaxPersonsAtIslands = oItem["MaxPeopleByIsland"].ToInt(), IsRoomdividetosmallroom = oItem["DivideRoom"].ToBoolean(), Remark = oItem["Remarks"].ToSharepointString(), CreatedDate = oItem.GetCreateDate(), LastModifiedBY = oItem.GetEditor(), CreatedBy = oItem.GetAuthor(), LastModified = oItem.GetModifiedDate(), ContentStatusId = contentStatusId, CRMPartnerId = partner.CRMPartnerId }; DKBSDbContext.Add(pRoom); DKBSDbContext.SaveChanges(); log.Info($"Partner room info completed. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}"); } catch (Exception ex) { ErrorCount += 1; log.Error($"Partner room info unable to process. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}", ex); } } } catch (Exception) { log.Error($"Unable to load Centrets lokaler i tal"); } log.Info($"Total ErrorCount:{ErrorCount}"); }
public void InsertData() { try { List oList = ClientContext.Web.Lists.GetByTitle("Partnere"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Query></View>"; ListItemCollection collListItem = oList.GetItems(camlQuery); ClientContext.Load(collListItem); ClientContext.ExecuteQuery(); var contentStatusId = Extension.GetApprovedConentStatusId(DKBSDbContext); foreach (ListItem oListItem in collListItem) { try { var hyperLink = ((FieldUrlValue)(oListItem["CISite"])); if (hyperLink != null) { var hLink = ((FieldUrlValue)(oListItem["CISite"])).Url; ClientContext Context = new ClientContext(hLink); Context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication; Context.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo("CRM Automation", "9LEkTny4"); Context.ExecuteQuery(); List oListData = Context.Web.Lists.GetByTitle("Aktiviteter"); camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Query></View>"; ListItemCollection oListDataItem = oListData.GetItems(camlQuery); Context.Load(oListDataItem); Context.ExecuteQuery(); CRMPartner partner = DKBSDbContext.CRMPartner.Where(p => p.AccountId == oListItem.Id.ToString()).Single(); foreach (ListItem oItem in oListDataItem) { try { log.Info($"PartnerInspirationCategoriesDK started. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}"); PartnerInspirationCategoriesDK dk = new PartnerInspirationCategoriesDK(); dk.CRMPartnerId = partner.CRMPartnerId; dk.ContentStatusId = contentStatusId; dk.Heading = oItem["Headline"].ToSharepointString(); dk.Description = oItem["Description"].ToSharepointString(); dk.SharepointId = oItem.GetId(); dk.CreatedBy = oItem.GetAuthor(); dk.LastModifiedBY = oItem.GetEditor(); dk.CreatedDate = oItem.GetCreateDate(); dk.LastModified = oItem.GetModifiedDate(); dk.Price = oItem["Price"].ToDecimal(); dk.Sorting = oItem["Position"].ToInt(); DKBSDbContext.PartnerInspirationCategoriesDK.Add(dk); DKBSDbContext.SaveChanges(); log.Info($"PartnerInspirationCategoriesDK completed. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}"); } catch (Exception ex) { ErrorCount += 1; log.Error($"PartnerInspirationCategoriesDK unable to process. Partner Id: {partner.AccountId} SharepointId:{oItem.Id}", ex); } } } } catch (Exception ex) { ErrorCount += 1; log.Error($"PartnerInspirationCategoriesDK unable to process. Partner Id: {oListItem.GetId()}", ex); } } } catch (Exception) { ErrorCount += ErrorCount; log.Error($"Unable to load Centrets lAktiviteter"); } log.Info($"Total ErrorCount:{ErrorCount}"); }
public void SetPartner(CRMPartner newlyCreatedPartner) { _dbContext.CRMPartner.Add(newlyCreatedPartner); }
public void InsertData() { try { List oList = ClientContext.Web.Lists.GetByTitle("Partnere"); CamlQuery camlQuery = new CamlQuery(); //<Where><Eq><FieldRef Name='ID' /><Value Type='Text'>49</Value></Eq> camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Where></Query></View>"; ListItemCollection collListItem = oList.GetItems(camlQuery); ClientContext.Load(collListItem); ClientContext.ExecuteQuery(); //get content status Id. var contentStatusId = Extension.GetApprovedConentStatusId(DKBSDbContext); foreach (ListItem oListItem in collListItem) { var hyperLink = ((FieldUrlValue)(oListItem["CISite"])); if (hyperLink != null) { try { var hLink = ((FieldUrlValue)(oListItem["CISite"])).Url; ClientContext Context = new ClientContext(hLink); Context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication; Context.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo(Configuration["SharePointUserName"], Configuration["SharePointPassword"]); Context.ExecuteQuery(); List oListData = Context.Web.Lists.GetByTitle("Kursuspakke"); camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Query></View>"; ListItemCollection oListDataItem = oListData.GetItems(camlQuery); Context.Load(oListDataItem); Context.ExecuteQuery(); foreach (ListItem oItem in oListDataItem) { log.Info($"Partner course package data process started Partner Id: {oItem.Id}"); try { log.Info($"Partner course package data process started Kursuspakke: {oItem.Id} Service Catalog Id { oItem["KursuspakkeID"].ToInt(true, 0)}"); CoursePackage coursePackage = DKBSDbContext.CoursePackage.Where(p => p.SharepointId == oItem["KursuspakkeID"].ToInt(true, 0)).Single(); CRMPartner partner = DKBSDbContext.CRMPartner.Where(p => p.AccountId == oListItem.Id.ToString()).Single(); PartnerCoursePackage partnerPackage = new PartnerCoursePackage(); partnerPackage.CRMPartnerId = partner.CRMPartnerId; partnerPackage.SharepointId = oItem.Id; partnerPackage.CoursePackageId = coursePackage.CoursePackageId; partnerPackage.ContentStatusId = contentStatusId; partnerPackage.Offered = oItem["Offered"].ToBoolean(); partnerPackage.Price = oItem["Price"].ToDecimal(); partnerPackage.CreatedDate = oItem.GetCreateDate(); partnerPackage.LastModified = oItem.GetModifiedDate(); partnerPackage.LastModifiedBy = oItem.GetEditor(); partnerPackage.CreatedBy = oItem.GetAuthor(); var includedPriceDetails = oItem["IncludedInPriceDefault"].ParseString(); var additionalIncluded = oItem["IncludedInPriceAdditional"].ParseString(); var optionalPurchages = oItem["OptionalPurchases"].ParseString(); var pricePerYear = oItem["PricePerYear"].ParseString(); // Included in price foreach (var item in includedPriceDetails) { var packageItem = DKBSDbContext.PackageIncludedItem.First(p => p.CoursePackageId == coursePackage.CoursePackageId && p.DK == item[0]); PartnerPackageIncludedItem ppi = new PartnerPackageIncludedItem() { PartnerCoursePackageId = partnerPackage.PartnerCoursePackageId, CreatedDate = oItem.GetCreateDate(), LastModified = oItem.GetModifiedDate(), LastModifiedBy = oItem.GetEditor(), CreatedBy = oItem.GetAuthor(), PackageIncludedItemId = packageItem.PackageIncludedItemId, Offered = item[2].IsChecked(), }; partnerPackage.PartnerPackageIncludedItems.Add(ppi); } // additional included foreach (var item in additionalIncluded) { PartnerPackageAdditionalItem ppai = new PartnerPackageAdditionalItem() { PartnerCoursePackageId = partnerPackage.PartnerCoursePackageId, CreatedDate = oItem.GetCreateDate(), LastModified = oItem.GetModifiedDate(), LastModifiedBy = oItem.GetEditor(), CreatedBy = oItem.GetAuthor(), DK = item[0], UK = item[1] }; partnerPackage.PartnerPackageAdditionalItems.Add(ppai); } // optional purchages in price foreach (var item in optionalPurchages) { PartnerPackageAdditionalItem ppai = new PartnerPackageAdditionalItem() { PartnerCoursePackageId = partnerPackage.PartnerCoursePackageId, CreatedDate = oItem.GetCreateDate(), LastModified = oItem.GetModifiedDate(), LastModifiedBy = oItem.GetEditor(), CreatedBy = oItem.GetAuthor(), DK = item[0], UK = item[1], Price = item[2].ToDecimal(defaultData: true, defaultDataValue: 0).Value }; partnerPackage.PartnerPackageAdditionalItems.Add(ppai); } // Price next year foreach (var item in pricePerYear) { PartnerPackageYear pny = new PartnerPackageYear() { PartnerCoursePackageId = partnerPackage.PartnerCoursePackageId, CreatedDate = oItem.GetCreateDate(), LastModified = oItem.GetModifiedDate(), LastModifiedBy = oItem.GetEditor(), CreatedBy = oItem.GetAuthor(), Year = item[0].ToInt(true, 0).Value, PricePerPerson = item[1].ToDecimal(true, 0).Value, }; partnerPackage.PartnerPackageYears.Add(pny); } DKBSDbContext.Add(partnerPackage); DKBSDbContext.SaveChanges(); log.Info($"Partner course package data process completed Kursuspakke: {oItem.Id} Service Catalog Id { oItem["KursuspakkeID"].ToInt(true, 0)}"); } catch (Exception ex) { ErrorCount += 1; log.Error($"Error:Unable to insert Course package Kursuspakke Id: {oItem.Id} Service Catalog Id { oItem["KursuspakkeID"].ToInt(true, 0)}", ex); } } log.Info($"Partner course package data process completed Partner Id: {oListItem.Id}"); } catch (Exception ex) { ErrorCount += 1; log.Error($"Error:Unable to pull Kursuspakke. PartnerId:{oListItem.Id}", ex); } } } } catch (Exception ex) { log.Error($"Error:Unable to pull Partnere.", ex); } log.Info($"Total ErrorCount:{ErrorCount}"); }
public async void InsertData() { var oList = ClientContext.Web.Lists.GetByTitle("Partnere"); CamlQuery camlQuery = new CamlQuery(); camlQuery.ViewXml = "<View Scope='Recursive'><Query><ViewFields><FieldRef Name='ID'/><FieldRef Name='ID'/><FieldRef Name='Title'/><FieldRef Name='CISite'/><FieldRef Name='CISiteShortUrl'/></ViewFields></Query></View>"; ListItemCollection collListItem = oList.GetItems(camlQuery); ClientContext.Load(collListItem); ClientContext.ExecuteQuery(); log.Info($"Partnere & dokumenter List data pulled successfully."); foreach (ListItem oListItem in collListItem) { try { var hyperLink = ((FieldUrlValue)(oListItem["CISite"])); log.Info($"Partner CISite Partner Id {oListItem.Id} Title :{oListItem["Title"]}"); if (hyperLink != null) { CRMPartner crmPartner = DKBSDbContext.CRMPartner.FirstOrDefault(p => p.SharePointId == int.Parse(oListItem["ID"].ToString())); if (crmPartner == null) { log.Error($"Partner not found in dkbs sql database Sharepoint Id:{oListItem.GetId()}"); continue; } log.Info($"Started Partner Id {oListItem.Id} Title :{oListItem["Title"]}"); var hLink = ((FieldUrlValue)(oListItem["CISite"])).Url; ClientContext Context = new ClientContext(hLink); Context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication; Context.FormsAuthenticationLoginInfo = new FormsAuthenticationLoginInfo(Configuration["SharePointUserName"], Configuration["SharePointPassword"]); Context.ExecuteQuery(); var oListData = Context.Web.Lists.GetByTitle("Billeder"); camlQuery.ViewXml = "<View Scope='RecursiveAll'><Query></Query></View>"; ListItemCollection oListDataItem = oListData.GetItems(camlQuery); Context.Load(oListDataItem); Context.ExecuteQuery(); log.Info($"Pictures/Billeder List data pulled successfully. Partner Id {oListItem.GetId()}"); foreach (ListItem oItem in oListDataItem) { try { if (oItem.FileSystemObjectType == FileSystemObjectType.Folder) { Microsoft.SharePoint.Client.Folder ifolder = oItem.Folder; Context.Load(ifolder); Context.ExecuteQuery(); if (!string.IsNullOrWhiteSpace(ifolder.Name.ToLower())) { var pictureFolder = DKBSDbContext.PictureFolder.FirstOrDefault(p => p.FolderName.ToLower() == ifolder.Name.ToLower()); if (pictureFolder == null) { pictureFolder = new PictureFolder { CreatedBy = oItem.GetAuthor(), CreatedDate = oItem.GetCreateDate(), LastModifiedBy = oItem.GetEditor(), LastModified = oItem.GetModifiedDate(), FolderName = ifolder.Name }; DKBSDbContext.PictureFolder.Add(pictureFolder); DKBSDbContext.SaveChanges(); } } } if (oItem.FileSystemObjectType == FileSystemObjectType.File) { PictureFolder pictureFolder = null; Microsoft.SharePoint.Client.File lfile = oItem.File; Context.Load(lfile); Context.ExecuteQuery(); try { //get the folder var tempArray = lfile.ServerRelativeUrl.Replace(@"/" + lfile.Name, "").Split('/'); var folderName = tempArray.ToList().Last(); pictureFolder = DKBSDbContext.PictureFolder.FirstOrDefault(p => p.FolderName.ToLower() == folderName.ToLower()); if (pictureFolder == null) { log.Error($"Unable to find folder for picture. Id:{oItem["ID"]} Picture Name :{lfile.Name} Path : {lfile.ServerRelativeUrl}"); throw new ArgumentNullException($"Unable to find folder for picture. Id:{oItem.GetId()} Picture Name :{lfile.Name} Path : {lfile.ServerRelativeUrl}"); } log.Info($"Picture Name :{lfile.Name} upload started."); var fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(Context, lfile.ServerRelativeUrl); await _storageService.SavePictureAsync(fileInfo.Stream, lfile.Name, crmPartner.CRMPartnerId, pictureFolder.PictureFolderId); } catch (Exception ex) { log.Error($"Unable to upload picture. Id:{oItem.GetId()} Picture Name :{lfile.Name}", ex); throw ex; } var picture = new Picture() { CreatedBy = oItem.GetAuthor(), CreatedDate = oItem.GetCreateDate(), LastModifiedBy = oItem.GetEditor(), LastModified = oItem.GetModifiedDate(), CRMPartnerId = crmPartner.CRMPartnerId, PictureFolderId = pictureFolder.PictureFolderId, PictureName = lfile.Name, Title = lfile.Title }; picture.Description = oItem["Description"].ToSharepointString(); picture.Position = oItem["ImagePosition"].ToInt(); DKBSDbContext.Picture.Add(picture); DKBSDbContext.SaveChanges(); log.Info($"Picture Name :{lfile.Name} uploaded successfully."); } } catch (Exception ex) { ErrorCount += 1; log.Error($"Unable to upload picture. Id:{oItem.GetId()}", ex); } } } } catch (Exception ex) { ErrorCount += 1; log.Error($"Partner pictures unable to load Id:{oListItem.GetId()}", ex); } } }
// Later move it seperate class private void CreatePartnerRelatedTablesDefaultEntries(CRMPartner newlyCreatedPartner) { //===========Create Partner Center Description================================= List <PartnerCenterDescription> partnerCenterDescriptions = new List <PartnerCenterDescription>(3); partnerCenterDescriptions.Add(new PartnerCenterDescription() { Language = "UK", CRMPartnerId = newlyCreatedPartner.CRMPartnerId, CreatedDate = DateTime.UtcNow, LastModified = DateTime.UtcNow, ContentStatusId = 1 }); partnerCenterDescriptions.Add(new PartnerCenterDescription() { Language = "DK", CRMPartnerId = newlyCreatedPartner.CRMPartnerId, CreatedDate = DateTime.UtcNow, LastModified = DateTime.UtcNow, ContentStatusId = 1 }); partnerCenterDescriptions.Add(new PartnerCenterDescription() { Language = "Ger", CRMPartnerId = newlyCreatedPartner.CRMPartnerId, CreatedDate = DateTime.UtcNow, LastModified = DateTime.UtcNow, ContentStatusId = 1 }); foreach (var item in partnerCenterDescriptions) { _choiceRepoistory.Add <PartnerCenterDescription>(item); } //===========Create Partner Course Package================================= foreach (var item in _choiceRepoistory.GetAll <CoursePackage>()) { PartnerCoursePackage partnerCoursePackage = new PartnerCoursePackage(); partnerCoursePackage.CoursePackageId = item.CoursePackageId; partnerCoursePackage.CRMPartnerId = newlyCreatedPartner.CRMPartnerId; _choiceRepoistory.Add <PartnerCoursePackage>(partnerCoursePackage); PartnerPackageIncludedItem partnerPackageIncludedItem = new PartnerPackageIncludedItem(); partnerPackageIncludedItem.PartnerCoursePackageId = partnerCoursePackage.PartnerCoursePackageId; // partnerPackageIncludedItem.PackageIncludedItemId = _choiceRepoistory.GetById<PackageIncludedItem>(x => x.CoursePackageId == partnerCoursePackage.CoursePackageId).PackageIncludedItemId; var res = _choiceRepoistory.GetById <PackageIncludedItem>(x => x.CoursePackageId == partnerCoursePackage.CoursePackageId); partnerPackageIncludedItem.PackageIncludedItemId = res != null ? (int?)res.PackageIncludedItemId : null; _choiceRepoistory.Add <PartnerPackageIncludedItem>(partnerPackageIncludedItem); PartnerPackageAdditionalItem partnerPackageAdditionalItem = new PartnerPackageAdditionalItem(); partnerPackageAdditionalItem.PartnerCoursePackageId = partnerCoursePackage.PartnerCoursePackageId; _choiceRepoistory.Add <PartnerPackageAdditionalItem>(partnerPackageAdditionalItem); PartnerPackageYear partnerPackageYear = new PartnerPackageYear(); partnerPackageYear.PartnerCoursePackageId = partnerCoursePackage.PartnerCoursePackageId; _choiceRepoistory.Add <PartnerPackageYear>(partnerPackageYear); } //===========Create PartnerCenterInfo================================= PartnerCenterInfo partnerCenterInfo = new PartnerCenterInfo(); partnerCenterInfo.CRMPartnerId = newlyCreatedPartner.CRMPartnerId; _choiceRepoistory.Add <PartnerCenterInfo>(partnerCenterInfo); //===========Create PartnerCenterRoomInfo================================= //PartnerCenterRoomInfo partnerCenterRoomInfo = new PartnerCenterRoomInfo(); //partnerCenterRoomInfo.CRMPartnerId = newlyCreatedPartner.CRMPartnerId; //_choiceRepoistory.Add<PartnerCenterRoomInfo>(partnerCenterRoomInfo); //===========Create PartnerInspirationCategoriesDK================================= //PartnerInspirationCategoriesDK partnerInspirationCategoriesDK = new PartnerInspirationCategoriesDK(); //partnerInspirationCategoriesDK.CRMPartnerId = newlyCreatedPartner.CRMPartnerId; //_choiceRepoistory.Add<PartnerInspirationCategoriesDK>(partnerInspirationCategoriesDK); //===========Create PartnerInspirationCategoriesUK================================= //PartnerInspirationCategoriesUK partnerInspirationCategoriesUK = new PartnerInspirationCategoriesUK(); //partnerInspirationCategoriesUK.CRMPartnerId = newlyCreatedPartner.CRMPartnerId; //_choiceRepoistory.Add<PartnerInspirationCategoriesUK>(partnerInspirationCategoriesUK); }
public async Task <IActionResult> CreatePartner([FromBody] CRMPartnerDTO dto) { try { if (string.IsNullOrEmpty(dto.AccountId)) { ModelState.AddModelError("AccountId", "AccountId can't be null"); return(BadRequest(ModelState)); } if (dto == null) { ModelState.AddModelError("Partner", "Partner object can't be null"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var partner = _choiceRepoistory.GetById <CRMPartner>(c => c.AccountId == dto.AccountId); if (partner != null) { ModelState.AddModelError("Partner", $"Partner entry already exist for AccountId {dto.AccountId}."); return(BadRequest(ModelState)); } // if partner type is "partner then assign membershiptype. if (!string.IsNullOrWhiteSpace(dto.Partnertype) && dto.Partnertype.ToLower() == "partner") { dto.Partnertype = dto.MembershipType; } CRMPartner newlyCreatedPartner = _mapper.Map <CRMPartnerDTO, CRMPartner>(dto); newlyCreatedPartner.CreatedBy = User.GetUserName();; newlyCreatedPartner.CreatedDate = DateTime.UtcNow; newlyCreatedPartner.LastModified = DateTime.UtcNow; newlyCreatedPartner.LastModifiedBy = User.GetUserName();; _choiceRepoistory.Add <CRMPartner>(newlyCreatedPartner); if (bool.Parse(_configuration["SharePointIntegrationEnabled"].ToString())) { var sharePointId = await _sharePointService.InsertPartnerAsync(newlyCreatedPartner); if (sharePointId <= 0) { return(StatusCode(500, "An error occurred while creating sharepoint partner. Please try again or contact adminstrator")); } newlyCreatedPartner.SharePointId = sharePointId; } #region All related fileds CreatePartnerRelatedTablesDefaultEntries(newlyCreatedPartner); #endregion _choiceRepoistory.Complete(); return(CreatedAtRoute("GetPartnerByAccountId", new { newlyCreatedPartner.AccountId }, dto)); } catch (Exception ex) { // TODO : Add logging and decide on showing ex.message return(StatusCode(500, "An error occurred while creating partner. Please try again or contact adminstrator")); } }