public async Task <IActionResult> Add(CreateCampaignViewModel model) { Campaign campaign = new Campaign { Name = model.Name, Description = model.Info, FinishDate = model.FinishDate, CreateDate = DateTimeOffset.Now, ColectedSum = 0, Image = model.Img, Sum = model.Sum, User = await _userManager.GetUserAsync(User), Video = model.Video, Theme = db.Themes.FirstOrDefault(t => t.Name == model.Theme) }; await db.Campaigns.AddAsync(campaign); var modelTags = model.Tags.Split(' ', StringSplitOptions.RemoveEmptyEntries); Tag tag = null; List <Tag> tagList = new List <Tag>(); foreach (var item in modelTags) { tag = await db.Tag.FirstOrDefaultAsync(t => t.value == item); if (tag == null) { tag = new Tag { value = item }; await db.Tag.AddAsync(tag); } tagList.Add(tag); } List <CampaignTag> ctList = tagList.Select(t => new CampaignTag { Tag = t, Campaign = campaign }).ToList(); await db.CampaignTags.AddRangeAsync(ctList); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Profile")); }
public IActionResult Edit(int id) { var campaign = db.Campaigns.Include(c => c.Theme).Include(c => c.Tags).ThenInclude(t => t.Tag).FirstOrDefault(c => c.Id == id); string tagstring = ""; foreach (var tag in campaign.Tags) { tagstring += tag.Tag.value + ' '; } CreateCampaignViewModel model = new CreateCampaignViewModel { Id = campaign.Id, Name = campaign.Name, FinishDate = campaign.FinishDate, Img = campaign.Image, Info = campaign.Description, Sum = campaign.Sum, Theme = campaign.Theme.Name, Themes = db.Themes.Select(t => t.Name).ToList(), Video = campaign.Video, Tags = tagstring }; return(View(model)); }
public async Task <int> CreateCampaign(int agencyid, CreateCampaignViewModel model, string username) { var campaignTypeCharge = await _campaignTypeChargeRepository.GetSingleBySpecAsync(new CampaignTypeChargeSpecification(model.Type)); if (campaignTypeCharge == null) { return(-1); } var settings = await _settingRepository.GetSetting(); // var wallet = await _walletRepository.GetBalance(EntityType.Agency, agencyid); var code = await _campaignRepository.GetValidCode(agencyid); var campaign = model.GetEntity(agencyid, campaignTypeCharge, settings, code, username); if (campaign == null) { return(-1); } await _campaignRepository.AddAsync(campaign); if (campaign.Id > 0) { await CreateCampaignAccountType(campaign.Id, model.AccountType, username); await CreateCampaignOptions(campaign.Id, model, username); return(campaign.Id); } return(-1); }
public void OnGet() { Campaign = new CreateCampaignViewModel(); var groupLookup = _contactAppService.GetGroupLookupAsync().Result; Groups = groupLookup.Items.Select(x => new SelectListItem(x.Name, x.Id.ToString())).ToList(); }
public IActionResult Add() { CreateCampaignViewModel model = new CreateCampaignViewModel { Themes = db.Themes.Select(t => t.Name).ToList() }; return(View(model)); }
public async Task <IActionResult> Create(CreateCampaignViewModel model) { var campaign = model.Campaign; campaign.ImageGalleryUrl = UploadImage(model.Image); campaign.Creator = await userManager.GetUserAsync(User); _campaignRepository.Add(campaign); return(RedirectToAction("campaign", new { Id = campaign.Id })); }
public ActionResult Edit(CreateCampaignViewModel model) { using (var db = new ApplicationDbContext()) { var campaign = GetCampaignModel(model, db); db.CampaignModels.AddOrUpdate(campaign); db.SaveChanges(); return(RedirectToAction("Details", "Campaign", new { id = model.Id })); } }
public IActionResult Create() { var createVm = new CreateCampaignViewModel { Campaign = new Campaign(), Categories = _context.Categories.ToList() }; return(View(createVm)); }
public ActionResult Campaign(CreateCampaignViewModel campaign) { if (ModelState.IsValid) { var newCampaign = _campaignService.CreateCampaign(campaign.Name, campaign.Description); return(Json(new { state = "Success", additional = Url.Action("Campaign", new { id = newCampaign.CampaignId }) })); } return(Json(new { state = "Fail", additional = "Need to fill in all data" })); }
private CreateCampaignViewModel EditCampaign(CampaignModel campaign) { var temp = new CreateCampaignViewModel { Name = campaign.Name, Description = campaign.Description, Sum = campaign.RequiredSum, CreatedOn = campaign.CreatedOn }; return(temp); }
public ActionResult Create(CreateCampaignViewModel model) { using (var db = new ApplicationDbContext()) { var campaignModel = GetCampaignModel(model, db); campaignModel.CreatedOn = DateTime.Now; db.CampaignModels.Add(campaignModel); db.SaveChanges(); } return(RedirectToAction("CampaignList", "Campaign")); }
public async Task OnGetAsync(int?id) { if (id.HasValue) { var camp = await _campaignFacade.GetByIdAsync(id.Value); CreateCampaign = new CreateCampaignViewModel { Id = camp.Id, DateTime = camp.DateTime, Name = camp.Name, Place = camp.Place }; } Campaigns = await _campaignFacade.ListAllAsync(); }
public ActionResult Create(CreateCampaignViewModel campaign) { if (campaign != null && ModelState.IsValid) { var dbCampaign = Mapper.Map <Campaign>(campaign); dbCampaign.AuthorId = this.CurrentUser.Id; dbCampaign.CreatedOn = DateTime.Now; this.Data.Campaigns.Add(dbCampaign); this.Data.SaveChanges(); return(RedirectToAction("Index")); } return(View(campaign)); }
private CampaignModel GetCampaignModel(CreateCampaignViewModel model, ApplicationDbContext db) { var ownerId = model.OwnerId ?? User.Identity.GetUserId(); var ownerName = db.Users.SingleOrDefault(x => x.Id == ownerId)?.UserName; return(new CampaignModel { Id = model.Id, Name = model.Name, Description = model.Description, RequiredSum = model.Sum, OwnerName = ownerName, OwnerId = ownerId, ImageUrl = model.ImageUrl, CreatedOn = model.CreatedOn }); }
public async Task <IActionResult> Edit(CreateCampaignViewModel model) { var campaign = await db.Campaigns.Include(c => c.Theme).Include(c => c.Tags).FirstOrDefaultAsync(c => c.Id == model.Id); campaign.Name = model.Name; campaign.FinishDate = model.FinishDate; campaign.Image = model.Img; campaign.Description = model.Info; campaign.Sum = model.Sum; campaign.Theme = await db.Themes.FirstOrDefaultAsync(c => c.Name == model.Theme); campaign.Video = model.Video; var modelTags = model.Tags.Split(' ', StringSplitOptions.RemoveEmptyEntries); Tag tag = null; List <Tag> tagList = new List <Tag>(); foreach (var item in modelTags) { tag = await db.Tag.FirstOrDefaultAsync(t => t.value == item); if (tag == null) { tag = new Tag { value = item }; await db.Tag.AddAsync(tag); } tagList.Add(tag); } List <CampaignTag> ctList = tagList.Select(t => new CampaignTag { Tag = t, Campaign = campaign }).ToList(); await db.CampaignTags.AddRangeAsync(ctList); db.Update(campaign); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Profile")); }
public ActionResult Create(CreateCampaignViewModel model) { if (!this.ModelState.IsValid) { return(this.View(model)); } if (model.GoalPrice % 10 != 0) { this.ModelState.AddModelError(string.Empty, "Goal Price must be divisible by 10"); return(this.View(model)); } if (model.Shares % 5 != 0) { this.ModelState.AddModelError(string.Empty, "Shares must be divisible by 5"); return(this.View(model)); } var currentUserId = this.User.Identity.GetUserId(); var currentUser = this.users.GetById(currentUserId); var campaign = new Campaign { Name = model.Name, User = currentUser, Description = model.Description, GoalPrice = model.GoalPrice, TotalShares = model.Shares, AvailableShares = model.Shares }; this.campaigns.Add(campaign); this.campaigns.SaveChanges(); return(this.RedirectToAction("Index", "Home")); }
private async Task CreateCampaignOptions(int campaignId, CreateCampaignViewModel model, string username) { if (model.AccountType.Contains(AccountType.HotMom)) { if (model.ChildType.HasValue) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.Child, Value = $"{model.ChildType}|{model.ChildAgeMin}-{model.ChildAgeMax}" }); } } if (model.EnabledCity && model.CityId != null && model.CityId.Count > 0) { foreach (var cityId in model.CityId) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.City, Value = cityId.ToString() }); } } if (model.EnabledGender && model.Gender.HasValue) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.Gender, Value = model.Gender.Value.ToString() }); } if (model.EnabledAgeRange && model.AgeEnd.HasValue && model.AgeStart.HasValue) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.AgeRange, Value = $"{model.AgeStart.Value}-{model.AgeEnd.Value}" }); } if (model.EnabledCategory && model.CategoryId != null && model.CategoryId.Count > 0) { foreach (var categoryid in model.CategoryId) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.Category, Value = categoryid.ToString() }); } } if (model.EnabledTags && model.AccountTags != null && model.AccountTags.Count > 0) { foreach (var tag in model.AccountTags) { await _campaignOptionRepository.AddAsync(new CampaignOption() { CampaignId = campaignId, Name = CampaignOptionName.Tags, Value = tag }); } } }
public async Task <IActionResult> Create(CreateCampaignViewModel model, int submittype = 0) { var error = ""; if (ModelState.IsValid) { var valid = true; if (model.Method == CampaignMethod.ChooseAccount) { if (model.AccountType.Contains(AccountType.Regular)) { //generate accountids var matchedAccountIds = new List <int>(); var matchedAccountChargeAmounts = new List <int>(); var matchedAccounts = await _accountService.GetListAccount(model.AccountType, model.CategoryId, model.Gender, model.CityId, model.AgeStart, model.AgeEnd, string.Empty, 1, model.Quantity, null, 0, 0); foreach (var matchedAccount in matchedAccounts.Accounts) { matchedAccountIds.Add(matchedAccount.Id); matchedAccountChargeAmounts.Add(0); } model.AccountIds = matchedAccountIds; model.AccountChargeAmounts = matchedAccountChargeAmounts; } if (model.AccountType == null || model.AccountType.Count == 0) { valid = false; error = "Hãy chọn đối tượng "; } else if (model.AccountIds == null || model.AccountIds.Count == 0 || model.AccountIds.Count != model.AccountChargeAmounts.Count) { valid = false; error = "Không có Kol phù hợp. Vui lòng chộn các tiêu chí khác"; } } else { model.AccountIds = new List <int>(); model.AccountChargeAmounts = new List <int>(); } if (valid) { if (!string.IsNullOrEmpty(model.Image)) { model.Image = _fileHelper.MoveTempFile(model.Image, "campaign"); } var id = await _campaignService.CreateCampaign(CurrentUser.Id, model, CurrentUser.Username); if (id > 0) { for (var i = 0; i < model.AccountIds.Count; i++) { var amount = model.AccountType.Contains(AccountType.Regular) ? model.AccountChargeAmount ?? 0 : model.AccountChargeAmounts[i]; BackgroundJob.Enqueue <ICampaignService>(m => m.CreateCampaignAccount(CurrentUser.Id, id, model.AccountIds[i], amount, CurrentUser.Username)); } return(Json(new { status = 1, message = "Thêm chiến dịch mới thành công", campaignid = id, url = Url.Action("Details", new { id = id }) })); } else { error = "Lỗi khi khởi tạo chiến dịch. Vui lòng thử lại"; } } } return(Json(new { status = -1, message = error })); //await ViewbagData(); //return View(model); }
public CreateCampaignPage(int orgId) { var viewModel = new CreateCampaignViewModel(Navigation, orgId); BindingContext = viewModel; var campaignName = new Entry { Placeholder = "Campaign Name" }; campaignName.SetBinding(Entry.TextProperty, CreateCampaignViewModel.CampaignNamePropertyName); var campaignDescription = new Entry { Placeholder = "Description" }; campaignDescription.SetBinding(Entry.TextProperty, CreateCampaignViewModel.CampaignDescriptionPropertyName); var targetDateLabel = new Label { Text = "Target Date", HorizontalOptions = LayoutOptions.Center }; var campaignTargetDate = new DatePicker { Format = "D" }; campaignTargetDate.SetBinding(DatePicker.DateProperty, CreateCampaignViewModel.CampaignTargetDatePropertyName); var campaignImage = new Label(); var imgButton = new Button { Text = "Upload Image" }; imgButton.Clicked += async(sender, e) => { var imgPath = App.MediaPicker.GetImage(); campaignImage.Text = imgPath; }; var targetLabel = new Label { Text = "Target Amount", HorizontalOptions = LayoutOptions.Center }; _campaignTargetLabel = new Label { Text = String.Format("{0}", _minCampaignTarget.ToString("C", CultureInfo.CurrentCulture)), TextColor = Color.FromHex("f79848"), Font = Font.SystemFontOfSize(50, FontAttributes.Bold), HorizontalOptions = LayoutOptions.Center }; var campaignTarget = new Slider { Maximum = 5000, Minimum = _minCampaignTarget }; campaignTarget.ValueChanged += async(sender, e) => { _campaignTargetLabel.Text = String.Format("{0}", e.NewValue.ToString("C", CultureInfo.CurrentCulture)); viewModel.CampaignTargetAmmount = e.NewValue; }; var button = new DefaultButton { Text = "CREATE CAMPAIGN", VerticalOptions = LayoutOptions.End }; button.SetBinding(Button.CommandProperty, CreateCampaignViewModel.AddCommandPropertyName); var layout = new StackLayout { Children = { campaignName, campaignDescription, targetDateLabel, campaignTargetDate, campaignImage, imgButton, targetLabel, _campaignTargetLabel, campaignTarget, button } }; Content = new ScrollView { Content = layout }; }