コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }