/// <summary>
        /// Initializes program entity using request data. Saves entities in database.
        /// </summary>
        /// <param name="customerId">The customer identifier.</param>
        /// <param name="programCreateDto">The program create dto.</param>
        /// <returns></returns>
        public async Task <OperationResultDto <ProgramBriefResponseDto, CreateUpdateProgramStatus> > CreateProgram(
            int customerId,
            ProgramRequestDto programCreateDto
            )
        {
            var newProgram = await BuildProgram(customerId, programCreateDto);

            if (newProgram.Status != CreateUpdateProgramStatus.Success)
            {
                return(new OperationResultDto <ProgramBriefResponseDto, CreateUpdateProgramStatus>()
                {
                    Status = newProgram.Status
                });
            }

            var createProgramResponse = await programService.Create(newProgram.Content);

            var respoDto = Mapper.Map <ProgramBriefResponseDto>(createProgramResponse.Content);

            await globalSearchCacheHelper.AddOrUpdateEntry(customerId, Mapper.Map <Program, SearchProgramResponseDto>(createProgramResponse.Content));

            await tagsSearchCacheHelper.AddOrUpdateTags(customerId, createProgramResponse.Content.Tags.Select(t => t.Name).ToList());

            var unusedTags = await tagsService.RemoveUnusedTags(customerId);

            await tagsSearchCacheHelper.RemoveTags(customerId, unusedTags);

            return(new OperationResultDto <ProgramBriefResponseDto, CreateUpdateProgramStatus>()
            {
                Status = newProgram.Status,
                Content = respoDto
            });
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create(ProgramViewModel model)
        {
            try
            {
                var result = await _programService.Create(model);

                return(Ok());
            }
            catch (Exception ex)
            {
                ex.ToExceptionless().Submit();
                return(BadRequest());
            }
        }