public smScheduleEvents UpdateEventById(int EventId)
        {
            smScheduleEvents events = (from x in base.Context.Set <smScheduleEvents>()
                                       where (x.EventId == EventId) && !x.IsDeleted
                                       select x).FirstOrDefault <smScheduleEvents>();

            events.IsPosted = true;
            base.Context.SaveChanges();
            return(events);
        }
        public smScheduleEvents UpdateScheduleEvents(smScheduleEvents events)
        {
            smScheduleEvents events2 = (from x in Context.Set <smScheduleEvents>()
                                        where (x.EventId == events.EventId) && !x.IsDeleted
                                        select x).FirstOrDefault <smScheduleEvents>();

            events2.LocalTime    = events.LocalTime;
            events2.ScheduleTime = events.ScheduleTime;
            Context.SaveChanges();
            return(events2);
        }
        public smScheduleEvents AddScheduleEvents(smScheduleEvents events)
        {
            smScheduleEvents evnt = new smScheduleEvents();

            evnt.ScheduleTime = events.ScheduleTime;
            evnt.LocalTime    = events.LocalTime;
            evnt.Evnt_Id      = events.Evnt_Id;
            evnt.ContentId    = events.ContentId;
            evnt.Title        = events.Title.Trim();
            evnt.IsFacebook   = events.IsFacebook;
            evnt.IsLinkedIn   = events.IsLinkedIn;
            evnt.IsTwitter    = events.IsTwitter;
            evnt.UserId       = events.UserId;
            evnt.CreatedDate  = DateTime.UtcNow;
            Context.Set <smScheduleEvents>().Add(evnt);
            Context.SaveChanges();
            return(evnt);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public smScheduleEvents UpdateScheduleEvents(smScheduleEvents events)
 {
     return(_homeRepository.UpdateScheduleEvents(events));
 }
Beispiel #6
0
 public smScheduleEvents AddScheduleEvents(smScheduleEvents events)
 {
     return(_homeRepository.AddScheduleEvents(events));
 }