public ClassLevelViewModel UpdateClassLevel(int id, ClassLevelViewModel classLevel)
        {
            var originalClassLevel = _classProgressionRepository.GetById(id);

            ClassLevelMapper.MapModelToEntity(classLevel, originalClassLevel);
            originalClassLevel.ModifiedBy = "TEST";
            var updatedClassLevel = _classProgressionRepository.Update(originalClassLevel);

            return(ClassLevelMapper.MapEntityToModel(updatedClassLevel));
        }
        public ClassLevelViewModel AddClassLevel(ClassLevelViewModel classLevel)
        {
            var classLevelEntity = ClassLevelMapper.MapModelToEntity(classLevel);

            classLevelEntity.CreatedBy = "TEST";
            classLevelEntity.SeedData  = false;
            var addedClassLevel = _classProgressionRepository.Add(classLevelEntity);

            return(ClassLevelMapper.MapEntityToModel(addedClassLevel));
        }
        public async Task <ActionResult> Create(ClassLevelViewModel model)
        {
            if (!IsRoutingOK(null))
            {
                return(RedirectOnError());
            }

            bool success = await Upsert(null, model);

            if (success)
            {
                return(RedirectOnError());
            }

            return(View("New", model));
        }
        public async Task <ActionResult> Update(int ClassLevelId, ClassLevelViewModel model)
        {
            if (!IsRoutingOK(ClassLevelId))
            {
                return(RedirectOnError());
            }

            bool success = await Upsert(ClassLevelId, model);

            if (success)
            {
                return(RedirectOnSuccess(ClassLevelId));
            }

            // If we got this far, an error occurred
            return(View("New", model));
        }
        //private bool UpdateStudentClass(ClassLevel ClassLevel)
        //{
        //    var helper = new ClassLevelHelper(ClassLevel);

        //    helper.ServiceUserId = GetUserId();

        //    return helper;
        //}

        private ClassLevelViewModel GetClassLevelModel(int?ClassLevelId)
        {
            ClassLevelViewModel model;


            if (ClassLevelId.HasValue)
            {
                var ClassLevel = GetClassLevel(ClassLevelId.Value);
                model = new ClassLevelViewModel(ClassLevel);
            }
            else
            {
                model = new ClassLevelViewModel();
            }

            // pass needed lists
            //ParseDefaults(model);

            return(model);
        }
        private async Task <bool> Upsert(int?ClassLevelId, ClassLevelViewModel model)
        {
            if (ModelState.IsValid)
            {
                var classLevel = context.ClassLevels.ToList().FirstOrDefault(x => x.Level == model.Level && x.SchoolLevel == model.SchoolLevel && x.StudyMode == model.StudyMode && x.HalfDay == model.HalfDay);


                if (classLevel != null && model.ClassLevelId <= 0)
                {
                    ShowError("Such a class already exists. Instead of creating a new one, make changes to the exisiting one.");
                    return(false);
                }

                if (!model.IsModelLevelValid())
                {
                    ShowError("You can't create a such a class. Nursery stops at 3, Primary at 7, and Secondary at 6!");
                    return(false);
                }

                var helper = (ClassLevelId.HasValue ? GetHelper(ClassLevelId.Value) : new ClassLevelHelper()
                {
                    ServiceUserId = GetUserId()
                });
                var upsert = await helper.UpsertClassLevel(UpsertMode.Admin, model);

                if (upsert.i_RecordId() > 0)
                {
                    ShowSuccess(upsert.ErrorMsg);

                    return(true);
                }
                else
                {
                    ShowError(upsert.ErrorMsg);
                }
            }

            //ParseDefaults(model);
            return(false);
        }
        // PUT: api/ClassLevel/5
        public async Task <IHttpActionResult> Put(int id, [FromBody] ClassLevelViewModel classLevel)
        {
            var updatedClassLevel = await Task.Run(() => _classLevelService.UpdateClassLevel(id, classLevel));

            return(Ok(updatedClassLevel));
        }
        // POST: api/ClassLevel
        public async Task <IHttpActionResult> Post([FromBody] ClassLevelViewModel classLevel)
        {
            var addedClassLevel = await Task.Run(() => _classLevelService.AddClassLevel(classLevel));

            return(CreatedAtRoute("GetClassLevelById", new { id = addedClassLevel.Id }, addedClassLevel));
        }
 public static void MapModelToEntity(ClassLevelViewModel classLevel, ClassProgression classProgressionEntity)
 {
     Mapper.Map(classLevel, classProgressionEntity);
 }
 public static ClassProgression MapModelToEntity(ClassLevelViewModel classLevel)
 {
     return(Mapper.Map <ClassProgression>(classLevel));
 }
        public async Task <UpsertModel> UpsertClassLevel(UpsertMode mode, ClassLevelViewModel model)
        {
            var upsert = new UpsertModel();

            try
            {
                Activity activity;
                string   title;
                System.Text.StringBuilder builder;

                // Apply changes
                ClassLevel = model.ParseAsEntity(ClassLevel);

                builder = new System.Text.StringBuilder();

                if (model.ClassLevelId == 0)
                {
                    db.ClassLevels.Add(ClassLevel);

                    title = "Class Level Recorded";
                    builder.Append("A Class Level record has been made").AppendLine();
                }
                else
                {
                    db.Entry(ClassLevel).State = System.Data.Entity.EntityState.Modified;

                    title = "Class Level Updated";
                    builder.Append("The following changes have been made to the Class Level details");

                    if (mode == UpsertMode.Admin)
                    {
                        builder.Append(" (by the Admin)");
                    }

                    builder.Append(":").AppendLine();
                }

                await db.SaveChangesAsync();

                ClassLevelId = ClassLevel.ClassLevelId;

                // Save activity now so we have a ClassLevelId. Not ideal, but hey
                activity        = CreateActivity(title, builder.ToString());
                activity.UserId = ServiceUserId;

                await db.SaveChangesAsync();

                if (model.ClassLevelId == 0)
                {
                    upsert.ErrorMsg = "Class Level record created successfully";
                }
                else
                {
                    upsert.ErrorMsg = "Class Level record updated successfully";
                }

                upsert.RecordId = ClassLevel.ClassLevelId.ToString();
            }
            catch (Exception ex)
            {
                upsert.ErrorMsg = ex.Message;
                //RecordException("Update ClassLevel Error", ex);
            }

            return(upsert);
        }
 protected override void ModelUpdatedImpl(Character character)
 {
     Levels = character.Levels
              .Select((l, i) => ClassLevelViewModel.FromModel(l, i, character.GetVariable("CON").Value))
              .ToImmutableList();
 }