Пример #1
0
        /// <summary>
        /// Készít egy új projektet
        /// </summary>
        /// <param name="model">Az új projekt modelje</param>
        /// <returns></returns>
        public async Task<IServiceResult> CreateProject(ProjectEditViewModel model)
        {
            var result = new ServiceResult<ProjectEditViewModel>();

            try
            {
                await TestProjectStore.InsertAsync(Mapper.Map<ProjectEditViewModel, Project>(model));
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);

                result.AddError("", e.Message);
            }

            return result;
        }
Пример #2
0
 public async Task<ActionResult> Edit(ProjectEditViewModel model)
 {
     if (ModelState.IsValid)
     {
         var result = await ProjectService.UpdateProject(model);
         if (result.Succeeded)
         {
             return RedirectToAction("DetailsOverview", new { id = model.Id });
         }
         else
         {
             AddModelErrors(result.Errors);
             return View("Edit", await ProjectService.FillAllPlatforms(model));
         }
     }
     return View("Edit", await ProjectService.FillAllPlatforms(model));
 }
Пример #3
0
 public async Task<ActionResult> Create(ProjectEditViewModel model)
 {
     if (ModelState.IsValid)
     {
         var result = await ProjectService.CreateProject(model);
         if (result.Succeeded)
         {
             return RedirectToAction("Index");
         }
         else
         {
             AddModelErrors(result.Errors);
             return View("Edit", await ProjectService.FillAllPlatforms(model));
         }
     }
     return View("Edit", await ProjectService.FillAllPlatforms(model));
 }
Пример #4
0
        /// <summary>
        /// Frissít egy már meglévő projektet
        /// </summary>
        /// <param name="model">A frissítendő projekt modelje</param>
        /// <returns></returns>
        public async Task<IServiceResult> UpdateProject(ProjectEditViewModel model)
        {
            var result = new ServiceResult<ProjectEditViewModel>();

            try
            {
                var current = await TestProjectStore.GetAll().Include(p => p.Platforms).SingleOrDefaultAsync(p => p.Id == model.Id);
                var edited = Mapper.Map<ProjectEditViewModel, Project>(model);
                edited.Platforms = current.Platforms;
                var currentPlatformIds = current.Platforms.Select(p => p.Id);

                var toaddids = model.SelectedPlatforms.Where(s => !currentPlatformIds.Contains(s));
                var todeleteids = currentPlatformIds.Where(s => !model.SelectedPlatforms.Contains(s));

                var toadd = await TestPlatformStore.GetAll(p => toaddids.Contains(p.Id)).ToListAsync();
                var todelete = await TestPlatformStore.GetAll(p => todeleteids.Contains(p.Id)).ToListAsync();

                toadd.ForEach(p => edited.Platforms.Add(p));
                todelete.ForEach(p => edited.Platforms.Remove(p));

                await TestProjectStore.UpdateAsync(edited);
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);

                result.AddError("", e.Message);
            }

            return result;
        }
Пример #5
0
        /// <summary>
        /// Feltölti az AllPlatforms tulajdonségot 
        /// </summary>
        /// <param name="vm">Ennek a objektumnak tölti fel a tulajdonságát</param>
        /// <param name="currentPlatforms">Azoknak a platformoknak az id-ja amelyek már ki vannak választva a projekthez</param>
        /// <returns></returns>
        public async Task<ProjectEditViewModel> FillAllPlatforms(ProjectEditViewModel vm, IEnumerable<int> currentPlatforms = null)
        {
            vm.AllPlatforms = (await TestPlatformStore.GetAll().ToListAsync()).Select(p => new SelectListItem
            {
                Value = p.Id.ToString(),
                Text = p.Name,
                Selected = currentPlatforms != null ? currentPlatforms.Contains(p.Id) : false
            }).ToList();

            return vm;
        }