Ejemplo n.º 1
0
        public async Task <ActionResponse <PlanDaySubjectDto> > InsertPlanDaySubject(PlanDaySubjectDto entityDto)
        {
            try
            {
                List <PlanDaySubjectThemeDto> planDaySubjectThemes = new List <PlanDaySubjectThemeDto>(entityDto.PlanDaySubjectThemes);
                entityDto.PlanDaySubjectThemeIds = null;
                entityDto.PlanDaySubjectThemes   = null;

                var entityToAdd = mapper.Map <PlanDaySubjectDto, PlanDaySubject>(entityDto);
                unitOfWork.GetGenericRepository <PlanDaySubject>().Add(entityToAdd);
                unitOfWork.Save();
                mapper.Map(entityToAdd, entityDto);

                entityDto.PlanDaySubjectThemes = planDaySubjectThemes.Select(pd =>
                {
                    pd.PlanDaySubjectId = entityDto.Id;
                    return(pd);
                }).ToList();

                if ((await ModifyPlanDaySubjectsThemes(entityDto))
                    .IsNotSuccess(out ActionResponse <PlanDaySubjectDto> themesResponse, out entityDto))
                {
                    return(themesResponse);
                }

                return(await ActionResponse <PlanDaySubjectDto> .ReturnSuccess(entityDto, "Predmet uspješno dodan u dan plana."));
            }
            catch (Exception)
            {
                return(await ActionResponse <PlanDaySubjectDto> .ReturnError("Greška prilikom dodavanja predmeta u dan plana."));
            }
        }
Ejemplo n.º 2
0
        public async Task <ActionResponse <PlanDaySubjectDto> > ModifyPlanDaySubject(PlanDaySubjectDto entityDto)
        {
            try
            {
                List <PlanDaySubjectThemeDto> planDaySubjectThemes = new List <PlanDaySubjectThemeDto>(entityDto.PlanDaySubjectThemes);
                entityDto.PlanDaySubjectThemeIds = null;
                entityDto.PlanDaySubjectThemes   = null;

                var entityToUpdate = unitOfWork.GetGenericRepository <PlanDaySubject>().FindSingle(entityDto.Id.Value);
                mapper.Map(entityDto, entityToUpdate);
                unitOfWork.GetGenericRepository <PlanDaySubject>().Update(entityToUpdate);
                unitOfWork.Save();

                entityDto.PlanDaySubjectThemes = planDaySubjectThemes;
                if ((await ModifyPlanDaySubjectsThemes(entityDto))
                    .IsNotSuccess(out ActionResponse <PlanDaySubjectDto> themesResponse, out entityDto))
                {
                    return(themesResponse);
                }

                return(await ActionResponse <PlanDaySubjectDto>
                       .ReturnSuccess(mapper.Map(entityToUpdate, entityDto), "Predmet u danu plana uspješno ažuriran."));
            }
            catch (Exception)
            {
                return(await ActionResponse <PlanDaySubjectDto> .ReturnError("Greška prilikom ažuriranja predmeta u danu plana."));
            }
        }
Ejemplo n.º 3
0
        public async Task <ActionResponse <PlanDaySubjectDto> > ModifyPlanDaySubjectsThemes(PlanDaySubjectDto entityDto)
        {
            var entity = unitOfWork.GetGenericRepository <PlanDaySubject>()
                         .FindBy(p => p.Id == entityDto.Id, includeProperties: "PlanDaySubjectThemes.Theme");

            var currentThemes = mapper.Map <List <PlanDaySubjectTheme>, List <PlanDaySubjectThemeDto> >(entity.PlanDaySubjectThemes.ToList());

            var themesToRemove = currentThemes.Where(cd => !entityDto.PlanDaySubjectThemes
                                                     .Select(pdst => pdst.ThemeId.Value)
                                                     .Contains(cd.ThemeId.Value))
                                 .ToList();

            var themesToAdd = entityDto.PlanDaySubjectThemes
                              .Where(nt => !currentThemes.Select(cd => cd.ThemeId.Value).Contains(nt.ThemeId.Value))
                              .Select(pds => new PlanDaySubjectThemeDto
            {
                ThemeId          = pds.ThemeId.Value,
                PlanDaySubjectId = entity.Id,
                HoursNumber      = pds.HoursNumber,
                ClassTypes       = pds.ClassTypes,
                PerfomingType    = pds.PerfomingType,
            }).ToList();

            var themesToModify = entityDto.PlanDaySubjectThemes.Where(cd => currentThemes
                                                                      .Select(pdst => pdst.ThemeId.Value)
                                                                      .Contains(cd.ThemeId.Value)).ToList();

            if ((await AddThemesToPlanDaySubject(themesToAdd))
                .IsNotSuccess(out ActionResponse <List <PlanDaySubjectThemeDto> > actionResponse, out themesToAdd))
            {
                return(await ActionResponse <PlanDaySubjectDto> .ReturnError("Neuspješno ažuriranje predmeta u danu plana."));
            }

            if ((await ModifyThemesInPlanDaySubject(themesToModify)).IsNotSuccess(out actionResponse, out themesToModify))
            {
                return(await ActionResponse <PlanDaySubjectDto> .ReturnError("Neuspješno ažuriranje predmeta u danu plana."));
            }

            if ((await RemoveThemesFromPlanDaySubject(themesToRemove))
                .IsNotSuccess(out actionResponse))
            {
                return(await ActionResponse <PlanDaySubjectDto> .ReturnError(actionResponse.Message));
            }

            return(await ActionResponse <PlanDaySubjectDto> .ReturnSuccess(mapper.Map(entity, entityDto), "Uspješno izmijenjeni dani plana."));
        }
Ejemplo n.º 4
0
 public async Task <ActionResponse <PlanDaySubjectDto> > RemoveSubjectFromPlanDay(PlanDaySubjectDto entityDto)
 {
     try
     {
         unitOfWork.GetGenericRepository <PlanDaySubject>().Delete(entityDto.Id.Value);
         unitOfWork.Save();
         return(await ActionResponse <PlanDaySubjectDto> .ReturnSuccess(null, "Predmet uspješno izbrisan iz planskog dana."));
     }
     catch (Exception)
     {
         return(await ActionResponse <PlanDaySubjectDto> .ReturnError("Greška prilikom micanja predmeta iz planskog dana."));
     }
 }