public bool DeleteScheduledEvents(int id, int UserId, int ImpersonateUserId) { try { smPost post = (from x in base.Context.Set <smPost>() where x.PostId == id select x).FirstOrDefault <smPost>(); post.IsDeleted = true; if (ImpersonateUserId != 0) { post.DeletedBy = ImpersonateUserId; } else { post.DeletedBy = UserId; } post.DeletedDate = new DateTime?(DateTime.UtcNow); base.Context.SaveChanges(); return(true); } catch { return(false); } }
public smPost UpdateScheduledPosts(int PostId, DateTime time, int UserId, int ImpersonateUserId, int eventID) { smPost post = (from x in base.Context.Set <smPost>() where (x.PostId == PostId) && !x.IsDeleted select x).FirstOrDefault <smPost>(); post.PostDate = time; post.EventId = eventID; if (ImpersonateUserId != 0) { post.ModifiedBy = ImpersonateUserId; } else { post.ModifiedBy = UserId; } base.Context.SaveChanges(); return(post); }
public smPost SaveScheduledPosts(smContentLibrary post, DateTime dt, int UserId, int ImpersonateUserId, int Fid, string socialarr, int EventId) { smPost entity = new smPost(); try { List <smContentLibrary> data = Context.Set <smContentLibrary>().Where(x => x.GroupId.ToLower().Trim() == post.GroupId.ToLower().Trim()).Select(y => y).ToList(); var strArra = socialarr.Split(',').ToList(); data = data.Where(x => strArra.Any(l => x.SocialMedia.ToLower() == l.ToLower())).ToList(); List <smPost> FinalData = data.Select(s => new smPost { UserId = UserId, EventId = EventId, Caption = s.Heading, Name = s.Title.Replace("’", "'"), Url = s.Url, UniquePostId = RandomString(8), ImageUrl = s.ImageUrl, Description = s.Description.Replace("’", "'"), PostDate = dt, ModifiedDate = DateTime.UtcNow, IsPosted = false, CreatedDate = new DateTime?(DateTime.UtcNow), PostType = 2, IsActive = true, IsDeleted = false, SocialMedia = s.SocialMedia, CreatedBy = ImpersonateUserId == 0 ? UserId : ImpersonateUserId, ContentId = s.ContentId, SocialMediaProfileId = Context.Set <smSocialMediaProfile>().Where(x => x.SocialMedia.ToLower() == s.SocialMedia.ToLower() && x.UserId == UserId).Select(x => x.Fid).FirstOrDefault(), }).ToList(); Context.Set <smPost>().AddRange(FinalData); Context.SaveChanges(); } catch (Exception) { } return(entity); }
public smPost UpdatePostDetails(smPost post) { return(_scheduleRepository.UpdatePostDetails(post)); }
public smPost SaveLinkedInPost(smSocialMediaProfile data, string Image, int UserId, string title, string url, string message, string post, int?postType, DateTime?scheduledPost, int ImpersonateUserId, string heading, string PostMethod) { smPost smpost = new smPost(); try { DateTime scheduledDateTime = DateTime.UtcNow; TimeZoneInfo tz = TimeZoneInfo.Local; var timeZoneId = tz.Id; // Convert scheduledtime to utc time TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); smpost.SocialMediaProfileId = data.Fid; smpost.UserId = UserId; smpost.SocialMedia = data.SocialMedia; smpost.Caption = heading; smpost.Name = title; smpost.Url = url; smpost.Description = message; if (Image != string.Empty) { if (PostMethod == "Republish") { smpost.ImageUrl = Image; } //if (Image.Contains('*')) //{ // Image = Image.Split('*')[1]; // smpost.ImageUrl = "/Images/WallImages/ContentImages/" + Image; //} else { if (Uri.IsWellFormedUriString(Image, UriKind.RelativeOrAbsolute)) { smpost.ImageUrl = Image; } else { smpost.ImageUrl = "/Images/WallImages/" + UserId + "/" + Image; } } } if (postType == 1) { smpost.PostDate = DateTime.UtcNow; smpost.ModifiedDate = DateTime.UtcNow; smpost.IsPosted = true; } //if (postType == 2) else { //scheduledDateTime = TimeZoneInfo.ConvertTimeToUtc(Convert.ToDateTime(scheduledPost), zone); //smpost.PostDate = scheduledDateTime; smpost.PostDate = scheduledPost ?? DateTime.UtcNow; smpost.ModifiedDate = scheduledDateTime; smpost.IsPosted = false; } if (ImpersonateUserId != 0) { smpost.CreatedBy = ImpersonateUserId; } else { smpost.CreatedBy = UserId; } smpost.CreatedDate = DateTime.UtcNow; smpost.PostType = postType; smpost.IsActive = true; smpost.IsDeleted = false; Context.Set <smPost>().Add(smpost); Context.SaveChanges(); return(smpost); } catch (Exception ex) { } return(smpost); }
public smPost SaveTwitterPost(smSocialMediaProfile data, string imagePath, string link, string Title, int userId, string message, string post, int?postType, DateTime?scheduleDate, int ImpersonateUserId, string PostMethod) { smPost smpost = new smPost(); try { DateTime scheduledDateTime = DateTime.UtcNow; TimeZoneInfo tz = TimeZoneInfo.Local; var timeZoneId = tz.Id; // Convert scheduledtime to utc time TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); smpost.SocialMediaProfileId = data.Fid; smpost.UserId = userId; smpost.SocialMedia = data.SocialMedia; smpost.Name = Title; // smpost.Caption = param.caption; smpost.Url = link; if (imagePath != string.Empty) { if (PostMethod == "Republish") { smpost.ImageUrl = imagePath; } //if (imagePath.Contains('*')) //{ // imagePath = imagePath.Split('*')[1]; // smpost.ImageUrl = "/Images/WallImages/ContentImages/" + imagePath; //} else { smpost.ImageUrl = "/Images/WallImages/" + userId + "/" + imagePath; } } smpost.Description = message; if (postType == 1) { smpost.PostDate = DateTime.UtcNow; smpost.ModifiedDate = DateTime.UtcNow; smpost.IsPosted = true; } // if (postType == 2) else { //scheduledDateTime = TimeZoneInfo.ConvertTimeToUtc(Convert.ToDateTime(scheduleDate), zone); //smpost.PostDate = scheduledDateTime; smpost.PostDate = scheduleDate ?? DateTime.UtcNow; smpost.ModifiedDate = scheduledDateTime; smpost.IsPosted = false; } if (ImpersonateUserId != 0) { smpost.CreatedBy = ImpersonateUserId; } else { smpost.CreatedBy = userId; } smpost.CreatedDate = DateTime.UtcNow; smpost.PostType = postType; smpost.IsActive = true; smpost.IsDeleted = false; Context.Set <smPost>().Add(smpost); Context.SaveChanges(); return(smpost); } catch (Exception ex) { } return(smpost); }
public smPost SavePublishingPostDetails(List <string> SelectedPreferences, string SocialMedia, string GroupId, smSocialMediaProfile profile, string ImageArray, string TextMessage, DateTime timenew, int userId, int ImpersonateUserId, DateTime localtime) { #region Find latest content from content library ==== //COnvert String List Into integer........... List <int> SelectedPreference = SelectedPreferences.Select(int.Parse).ToList(); //Find industryId using subindustry int aSubIndustryId = SelectedPreference[0]; var IndustryId = Context.Set <smSubIndustry>().Where(x => x.SubIndustryId.Equals(aSubIndustryId)).Select(x => x.IndustryId).FirstOrDefault(); //Find industryId using subindustry //// Find Subindustry List using subIndustry iDs var list = Context.Set <smSubIndustry>().Where(x => SelectedPreference.Contains(x.SubIndustryId)).ToList(); //------------------------------------- //// Get data from content library on behalf of social media that is activated by user var myvar = from a in Context.Set <smContentLibrary>().Where(x => x.CategoryId == IndustryId && x.IsActive == true && !x.IsDeleted) join b in Context.Set <smSocialMediaProfile>().Where(x => x.UserId == userId && x.IsActive == true) on a.SocialMedia equals b.SocialMedia select new { a }; List <smContentLibrary> list2 = new List <smContentLibrary>(); foreach (var item in myvar) { list2.Add(item.a); } //------------------------------------------ ///////////// Filter COntent Library Data According to selected preference List <smContentLibrary> source = new List <smContentLibrary>(); if (list.Count != 0) { var preferenceList = list.Select(x => x.SubIndustryName).ToList(); source = list2.Where(m => preferenceList.Contains(m.SubIndustryName)).ToList(); } List <smContentLibrary> second = new List <smContentLibrary>(); List <smContentLibrary> list6 = new List <smContentLibrary>(); /// jai kaali ma var AddedLists = Context.Set <smPost>().Where(x => x.UserId == userId && x.IsDeleted == false).Select(x => x.ContentId).ToList(); // var OldLists = source.Where(e => AddedLists.Contains(e.ContentId)); //// POsted list var NewLists = source.Where(e => !AddedLists.Contains(e.ContentId)).OrderByDescending(x => x.CreatedDate); /// New COntent that is not posted yet on any social media. var ListForSyncWithCaledar = NewLists.GroupBy(x => x.GroupId.Trim()).ToList().Take(1); // Filter COntent Library Data According to selected preference //Time to save data .,,,,,,..................... #endregion #region Data Manupulation and save into db accordingly List <datelist> DateList = new List <datelist>() { new datelist { LocalDate = localtime, scheduleDate = timenew }, new datelist { LocalDate = localtime.AddDays(7), scheduleDate = timenew.AddDays(7) }, new datelist { LocalDate = localtime.AddDays(14), scheduleDate = timenew.AddDays(14) }, new datelist { LocalDate = localtime.AddDays(21), scheduleDate = timenew.AddDays(21) }, }; smPost smpost = new smPost(); var flag = 0; var schedule = 0; try { if (NewLists.Count() != 0) { foreach (var items in ListForSyncWithCaledar) { #region //// Check whether data exist or not =========== smpost = Context.Set <smPost>().Where(x => x.PostDate == timenew && x.UserId == userId && x.ContentCreatedId == 2 && x.IsDeleted == false && x.IsPosted == false).FirstOrDefault(); if (smpost != null) { if (items.Select(x => x.CategoryId).Contains(smpost.ContentId)) { return(smpost); } else { flag = 1; } } else { smpost = new smPost(); flag = 2; } smScheduleEvents events = Context.Set <smScheduleEvents>().Where(x => x.ScheduleTime == timenew && x.UserId == userId && x.ContentCreatedId == 2 && x.IsDeleted == false).FirstOrDefault(); if (events != null) { if (items.Select(x => x.CategoryId).Contains(events.ContentId)) { return(smpost); } else { schedule = 1; } } else { events = new smScheduleEvents(); schedule = 2; } #endregion foreach (var dates in DateList) ///// save upto next 4 weak { #region Sync data into scheduler calendar TimeZone localZone = TimeZone.CurrentTimeZone; TimeSpan localOffset = localZone.GetUtcOffset(DateTime.Now); int offset = Convert.ToInt32(localOffset.TotalMinutes.ToString()); /// Sync With Schedular Calendar DateTime time = Convert.ToDateTime(timenew); DateTime now = DateTime.Now; DateTime time3 = DateTime.Now; new List <smScheduleEvents>(); // int offset = Convert.ToInt32(TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow)); DateTime dt = FromUTCData(new DateTime?(time), offset); string[] strArray = items.Select(x => x.Title).FirstOrDefault().Split(new char[] { '/' }); events.Title = strArray[0].Trim(); events.ContentId = items.Select(x => x.ContentId).FirstOrDefault(); events.UserId = userId; events.ScheduleTime = dates.scheduleDate; events.LocalTime = dates.LocalDate; events.Evnt_Id = null; events.IsFacebook = items.Any(x => x.SocialMedia.Contains("Facebook")); events.IsLinkedIn = items.Any(x => x.SocialMedia.Contains("LinkedIn")); events.IsTwitter = items.Any(x => x.SocialMedia.Contains("Twitter")); if (ImpersonateUserId != 0) { events.CreatedBy = ImpersonateUserId; } else { events.CreatedBy = userId; } events.CreatedDate = DateTime.UtcNow; events.ContentCreatedId = 2; if (schedule == 1) { Context.SaveChanges(); } else { Context.Set <smScheduleEvents>().Add(events); Context.SaveChanges(); } int EventId = events.EventId; #endregion Sync data into scheduler calendar #region Save data into smpost table foreach (var item in items) { DateTime scheduledDateTime = DateTime.UtcNow; TimeZoneInfo tz = TimeZoneInfo.Local; var timeZoneId = tz.Id; // Convert scheduledtime to utc time TimeZoneInfo zone = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId); smpost.SocialMediaProfileId = Context.Set <smSocialMediaProfile>().Where(x => x.UserId == userId && x.SocialMedia.ToLower() == item.SocialMedia).Select(x => x.Fid).FirstOrDefault(); smpost.UserId = userId; smpost.EventId = EventId; smpost.SocialMedia = item.SocialMedia; if (item.Heading == null) { item.Heading = item.Title; } smpost.Caption = item.Heading; smpost.ContentId = item.ContentId; smpost.Description = item.Description; smpost.Name = item.Title; smpost.Url = item.Url; smpost.UniquePostId = RandomString(8); if (string.IsNullOrEmpty(ImageArray)) { smpost.ImageUrl = item.ImageUrl; } smpost.PostDate = dates.scheduleDate; smpost.ModifiedDate = scheduledDateTime; smpost.IsPosted = false; if (ImpersonateUserId != 0) { smpost.CreatedBy = ImpersonateUserId; } else { smpost.CreatedBy = userId; } smpost.CreatedDate = DateTime.UtcNow; smpost.PostType = 2; smpost.IsActive = true; smpost.IsDeleted = false; smpost.ContentCreatedId = 2; // ====== Post Created From Auto post scheduler .... if (flag == 1) { Context.SaveChanges(); } else { Context.Set <smPost>().Add(smpost); Context.SaveChanges(); } } #endregion } } } #endregion return(smpost); } catch (Exception ex) { } return(smpost); }
public smPost UpdatePostDetails(smPost post) { return(_scheduleService.UpdatePostDetails(post)); }