예제 #1
0
        /// <summary>
        /// Reads Sitelinks to be updated from Excel Spreadsheet.
        /// </summary>
        /// <param name="siteLinkFilePath">Path of SpreadSheet</param>
        /// <returns>List of SiteLinks and Values modelled into Class SiteLinkModel</returns>
        public List <SiteLinkModel> Read(string siteLinkFilePath)
        {
            List <SiteLinkModel> sitelinksDataFromExcel = new List <SiteLinkModel>();

            if (File.Exists(siteLinkFilePath))
            {
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                using (var package = new ExcelPackage(new FileInfo(siteLinkFilePath)))
                {
                    var worksheet = package.Workbook.Worksheets.First();

                    for (int i = 2; i <= worksheet.Dimension.End.Row; i++)
                    {
                        SiteLinkModel siteLinkModel = new SiteLinkModel();
                        try
                        {
                            siteLinkModel.FeedId           = long.Parse(worksheet.Cells[i, 1].Value.ToString().Trim().Replace("\r\n", " "));
                            siteLinkModel.FeedItemId       = long.Parse(worksheet.Cells[i, 2].Value.ToString().Trim().Replace("\r\n", " "));
                            siteLinkModel.AccountId        = worksheet.Cells[i, 3].Value.ToString().Trim().Replace("\r\n", " ");
                            siteLinkModel.Text             = worksheet.Cells[i, 4].Value.ToString().Trim().Replace("\r\n", " ");
                            siteLinkModel.DescriptionLine1 = worksheet.Cells[i, 5].Value.ToString().Trim().Replace("\r\n", " ");
                            siteLinkModel.DescriptionLine2 = worksheet.Cells[i, 6].Value.ToString().Trim().Replace("\r\n", " ");
                            siteLinkModel.Url = worksheet.Cells[i, 7].Value.ToString().Trim().Replace("\r\n", " ");
                            if (siteLinkModel.Text.Trim().Length == 0 || siteLinkModel.DescriptionLine1.Trim().Length == 0 || siteLinkModel.DescriptionLine2.Trim().Length == 0 || siteLinkModel.Url.Trim().Length == 0)
                            {
                                siteLinkModel.IsDataValid = false;
                            }
                            else
                            {
                                siteLinkModel.IsDataValid = true;
                            }
                        }
                        catch (Exception ex)
                        {
                            siteLinkModel.IsDataValid = false;
                            Logger.Log(Logger.LogType.EXCEPTION, "Reading Row (" + (i + 2) + ") " + ex.Message + Environment.NewLine + ex.InnerException);
                        }
                        sitelinksDataFromExcel.Add(siteLinkModel);
                    }
                }
            }
            else
            {
                Logger.Log(Logger.LogType.ERROR, "Excel File with Site Link Does not Found at Path: " + siteLinkFilePath);
            }
            return(sitelinksDataFromExcel);
        }
예제 #2
0
        /// <summary>
        ///Creates FeedItem Object from SiteLinkModel Object
        /// </summary>
        /// <param name="siteLinkModelObject">SiteLinkModelObject</param>
        /// <returns>Feed Item</returns>
        public FeedItem CreateFeedItem(SiteLinkModel siteLinkModelObject)
        {
            FeedItem feedItem = new FeedItem();

            feedItem.feedId     = siteLinkModelObject.FeedId;
            feedItem.feedItemId = siteLinkModelObject.FeedItemId;

            //Feed Attribute ID for Text is 1
            FeedItemAttributeValue text = new FeedItemAttributeValue();

            text.feedAttributeId = 1;
            text.stringValue     = siteLinkModelObject.Text;

            //Feed Attribute ID for Description Line#1 is 3
            FeedItemAttributeValue descriptionLine1 = new FeedItemAttributeValue();

            descriptionLine1.feedAttributeId = 3;
            descriptionLine1.stringValue     = siteLinkModelObject.DescriptionLine1;

            //Feed Attribute ID for Description Line2 is 4
            FeedItemAttributeValue descriptionLine2 = new FeedItemAttributeValue();

            descriptionLine2.feedAttributeId = 4;
            descriptionLine2.stringValue     = siteLinkModelObject.DescriptionLine2;

            //Feed Attribute ID for Final URL is 5
            FeedItemAttributeValue finalUrl = new FeedItemAttributeValue();

            finalUrl.feedAttributeId = 5;
            finalUrl.stringValues    = new string[]
            {
                siteLinkModelObject.Url
            };

            feedItem.attributeValues = new FeedItemAttributeValue[]
            {
                text,
                descriptionLine1,
                descriptionLine2,
                finalUrl
            };

            return(feedItem);
        }
        public SitelinkFeedItem CreateSiteLinkFeedItem(SiteLinkModel siteLinkModel)
        {
            SitelinkFeedItem sitelinkFeedItem = new SitelinkFeedItem();

            sitelinkFeedItem.feedId            = siteLinkModel.FeedId;
            sitelinkFeedItem.feedItemId        = siteLinkModel.FeedItemId;
            sitelinkFeedItem.feedType          = siteLinkModel.TypeOfFeed;
            sitelinkFeedItem.sitelinkText      = siteLinkModel.Text;
            sitelinkFeedItem.sitelinkLine2     = siteLinkModel.DescriptionLine1;
            sitelinkFeedItem.sitelinkLine3     = siteLinkModel.DescriptionLine2;
            sitelinkFeedItem.sitelinkFinalUrls = new UrlList()
            {
                urls = new string[]
                {
                    siteLinkModel.Url
                }
            };
            return(sitelinkFeedItem);
        }