public async System.Threading.Tasks.Task <ActionResult> Add(Models.ScenarioDetailVM model) { IScenarioItemService scenarioItemService = DependencyUtils.Resolve <IScenarioItemService>(); //TrinhNNP if (ModelState.IsValid) { /*Add scenario*/ var user = Helper.GetCurrentUser(); var scenario = new Data.Models.Entities.Scenario { Title = model.Title, Description = model.Description, LayoutID = model.LayoutId, BrandID = user.BrandID, isPublic = model.IsPublic, AudioArea = model.AudioArea ?? -1, UpdateDateTime = DateTime.Now, }; await this.scenarioService.CreateAsync(scenario); /*Add scenario items*/ if (model.PlaylistAreaArr != null) { foreach (var item in model.PlaylistAreaArr) { var i = 0; if (item.PlaylistIds != null) { foreach (var playlist in item.PlaylistIds) { var scenarioItem = new Data.Models.Entities.ScenarioItem { AreaID = item.AreaId, PlaylistID = playlist, DisplayOrder = i++, ScenarioID = scenario.ScenarioID, LayoutID = scenario.LayoutID, }; await scenarioItemService.CreateAsync(scenarioItem); Session.Clear(); Session["ADD_RESULT"] = true; } } } } return(Json(new { success = true, url = "/Scenario/Index", }, JsonRequestBehavior.AllowGet)); } return(Json(new { success = false, }, JsonRequestBehavior.AllowGet)); }
public async System.Threading.Tasks.Task <ActionResult> Update(Models.ScenarioUpdateDetailVM model) { if (ModelState.IsValid) { var scenario = this.scenarioService.FirstOrDefault(a => a.ScenarioID == model.ScenarioId); if (scenario != null) { scenario.LayoutID = model.LayoutId; scenario.Description = model.Description; scenario.Title = model.Title; scenario.isPublic = model.IsPublic; scenario.UpdateDateTime = DateTime.Now; scenario.AudioArea = model.AudioArea ?? -1; } await this.scenarioService.UpdateAsync(scenario); /*Delete items of updated areas of scenario*/ if (model.PlaylistAreaArr != null) { IScenarioItemService scenarioItemService = DependencyUtils.Resolve <IScenarioItemService>(); for (int i = 0; i < model.PlaylistAreaArr.Length; i++) { /*Delete items of updated areas of scenario*/ var ScenarioItems = scenarioItemService.GetItemListByAreaScenarioId(model.PlaylistAreaArr[i].AreaId, model.ScenarioId); if (ScenarioItems != null) { foreach (var item in ScenarioItems) { await scenarioItemService.DeleteAsync(item); } } } /*Add updated items to scenario*/ foreach (var item in model.PlaylistAreaArr) { var i = 0; if (item.PlaylistIds != null) { foreach (var playlist in item.PlaylistIds) { var scenarioItem = new Data.Models.Entities.ScenarioItem { AreaID = item.AreaId, PlaylistID = playlist, DisplayOrder = i++, ScenarioID = model.ScenarioId, LayoutID = model.LayoutId, }; await scenarioItemService.CreateAsync(scenarioItem); Session.Clear(); Session["UPDATE_RESULT"] = true; } } } } return(Json(new { success = true, url = "/Scenario/Index", }, JsonRequestBehavior.AllowGet)); } return(Json(new { success = false, }, JsonRequestBehavior.AllowGet)); }