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 }); }
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); } }