public Campaign GetEntity(int agencyid, CampaignTypeCharge campaignTypeCharge, Core.Models.SettingModel setting, string code, string username)
        {
            //var accountChargeAmount = 0;
            //if (Type == CampaignType.CustomService || Type == CampaignType.JoinEvent)
            //{
            //    accountChargeAmount = AccountChargeAmount ?? 0;
            //}
            //else
            //{
            //    accountChargeAmount = campaignTypeCharge.AccountChargeAmount;
            //}


            //var accountChargeExtraPercent = 0;

            //if (Type == CampaignType.ShareContent || Type == CampaignType.ShareContentWithCaption)
            //{
            //    if (EnabledExtraType)
            //    {
            //        accountChargeExtraPercent = campaignTypeCharge.AccountChargeExtraPercent;
            //    }
            //}

            var start = "";
            var end   = "";

            if (!string.IsNullOrEmpty(ExecutionTime))
            {
                var arrDate = ExecutionTime.Split('-');
                if (arrDate.Length == 2)
                {
                    start = arrDate[0].Trim();
                    end   = arrDate[1].Trim();
                }
            }
            var image = string.Empty;

            if (Type == CampaignType.ChangeAvatar)
            {
                image = Image;
            }
            else if (Type == CampaignType.ShareContentWithCaption)
            {
                image = AddonImages.ToListString();
            }
            return(new Campaign()
            {
                DateCreated = DateTime.Now,
                AgencyId = agencyid,
                Data = Data,
                DateModified = DateTime.Now,
                Deleted = false,
                Description = Description,
                Image = image,
                Published = true,
                //Status = CampaignStatus.Created, // cap nhat status da duyet luon de facebook check,
                Status = CampaignStatus.Confirmed,
                Title = Title,
                UserCreated = username,
                UserModified = username,
                ExtraOptionChargePercent = setting.CampaignExtraOptionChargePercent,
                ServiceChargePercent = setting.CampaignServiceChargePercent,
                ServiceVATPercent = setting.CampaignVATChargePercent,
                ServiceChargeAmount = 0,
                AccountChargeExtraPercent = 0,
                AccountChargeAmount = 0,
                EnabledAccountChargeExtra = false,
                AccountChargeTime = 0,
                Requirement = Type == CampaignType.CustomService ? Requirement : string.Empty,
                Type = Type,

                Code = code,
                Quantity = Quantity,
                DateStart = start.ToViDateTime(),
                DateEnd = end.ToViDateTime(),
                AccountFeedbackBefore = FeedbackBefore.ToViDateTime(),
                CustomKolNames = CustomKolNames.ToListString(),
                Method = Method,
                SampleContent = SampleContent.ToListString(),
                Hashtag = HashTag.ToListString(),
                SampleContentText = SampleContentText
            });
        }
Exemple #2
0
        public void GetNextExecutionDate()
        {
            //var today = DateTime.Today;
            var days2Add = new List <int>();

            var now = DateTime.Now;

            var year   = now.Year;
            var day    = now.Day;
            var month  = now.Month;
            var hour   = now.Hour;
            var minute = now.Minute;

            if (ExecutionMonth != null)
            {
                month = Convert.ToInt32(ExecutionMonth);
                if (month < DateTime.Now.Month)
                {
                    year = year + 1;
                }
            }

            if ((RunEvery_Minute ?? 0) > 0)
            {
                var date = DateTime.Now.AddMinutes(Convert.ToInt32(RunEvery_Minute ?? 0));
                hour   = date.Hour;
                minute = date.Minute;
            }
            else
            {
                if (!string.IsNullOrEmpty(ExecutionTime))
                {
                    var time = ExecutionTime.Split(':');
                    hour   = Convert.ToInt32(time[0]);
                    minute = Convert.ToInt32(time[1]);
                }
            }

            if (ExecutionDate != null)
            {
                day = Convert.ToInt32(ExecutionDate);
                var tempDate = new DateTime(year, month, day, hour, minute, 0);
                if (tempDate < DateTime.Now)
                {
                    month = month + 1;
                }
            }
            else
            {
                var tempDate = new DateTime(year, month, day, hour, minute, 0);
                if (Monday)
                {
                    AddDayByWeekDays(DayOfWeek.Monday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Monday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Tuesday)
                {
                    AddDayByWeekDays(DayOfWeek.Tuesday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Tuesday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Wednesday)
                {
                    AddDayByWeekDays(DayOfWeek.Wednesday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Wednesday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Thursday)
                {
                    AddDayByWeekDays(DayOfWeek.Thursday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Thursday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Friday)
                {
                    AddDayByWeekDays(DayOfWeek.Friday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Friday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Saturday)
                {
                    AddDayByWeekDays(DayOfWeek.Saturday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Saturday - (int)tempDate.DayOfWeek + 7) % 7);

                if (Sunday)
                {
                    AddDayByWeekDays(DayOfWeek.Sunday, days2Add, tempDate);
                }
                //days2Add.Add(((int)DayOfWeek.Sunday - (int)tempDate.DayOfWeek + 7) % 7);

                if (days2Add.Count == 0)
                {
                    throw new Exception("გაგზავნის თარიღის დადგენა ვერ მოხერხდა.");
                }

                day = DateTime.Now.AddDays(days2Add.Min(x => x)).Day;
                if (day < DateTime.Now.Day)
                {
                    month = month + 1;
                }
            }
            var datetime = new DateTime(year, month, day, hour, minute, 0);

            if (datetime > DateTime.Now)
            {
                NextExecutionDate = datetime;
            }
            else
            {
                NextExecutionDate = datetime.AddDays(1);
            }
        }