< Summary

Class:SVETA.Api.Controllers.MovementStatusRouteController
Assembly:SVETA.Api
File(s):/opt/dev/sveta_api_build/SVETA.Api/Controllers/MovementStatusRouteController.cs
Covered lines:0
Uncovered lines:34
Coverable lines:34
Total lines:108
Line coverage:0% (0 of 34)
Covered branches:0
Total branches:8
Branch coverage:0% (0 of 8)

Metrics

MethodLine coverage Branch coverage
.ctor(...)0%100%
GetRoutesByDepartment()0%100%
GetRoutes()0%0%
Update()0%0%
ToDtoMapper()0%0%

File(s)

/opt/dev/sveta_api_build/SVETA.Api/Controllers/MovementStatusRouteController.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using SVETA.Api.Data.DTO;
 3using SVETA.Api.Data.DTO.Cluster;
 4using Microsoft.AspNetCore.Mvc;
 5using Microsoft.Extensions.Logging;
 6using Newtonsoft.Json;
 7using SVETA.Api.Data.DTO;
 8using SVETA.Api.Data.DTO.DepartmentDTO;
 9using SVETA.Api.Helpers.Authorize;
 10using Swashbuckle.AspNetCore.Annotations;
 11using System;
 12using System.Collections.Generic;
 13using System.Linq;
 14using System.Threading.Tasks;
 15using WinSolutions.Sveta.Common;
 16using WinSolutions.Sveta.Server.Data.DataModel.Entities;
 17using WinSolutions.Sveta.Server.Data.DataModel.Kinds;
 18using WinSolutions.Sveta.Server.Domain;
 19using WinSolutions.Sveta.Server.Services.Interfaces;
 20using SVETA.Api.Services.Interfaces;
 21using AutoMapper;
 22using SVETA.Api.Data.DTO.Movements;
 23
 24namespace SVETA.Api.Controllers
 25{
 26    [Route("api/v1/MovementStatusRoutes")]
 27    [ApiController]
 28    [Authorize]
 29    public class MovementStatusRouteController : SvetaController
 30    {
 31        const string _routeUrl = "api/v1/MovementStatusRoutes";
 32        readonly IMovementRouteService _movementRouteService;
 33
 34        public MovementStatusRouteController(IMovementRouteService movementRouteService, ILogger<MovementStatusRouteCont
 035             : base(logger)
 036        {
 037            _movementRouteService = movementRouteService;
 038        }
 39
 40        /// <summary>
 41        /// Возвращает регламенты статусов по складу
 42        /// </summary>
 43        /// <param name="id">id склада</param>
 44        /// <returns></returns>
 45        [HttpGet("Department/{id}")]
 46        [SwaggerResponse(200, "Успешно", typeof(List<MovementStatusRouteResponseDTO>))]
 47        [SwaggerResponse(500, "Ошибка на стороне сервера", typeof(ErrorDTO))]
 48        public async Task<IActionResult> GetRoutesByDepartment(long id)
 049        {
 050            var result = await _movementRouteService.GetRoutesByDepartment(id);
 051            return Ok(ToDtoMapper().Map<List<MovementStatusRoute>, List<MovementStatusRouteResponseDTO>>(result));
 052        }
 53
 54        /// <summary>
 55        /// Возвращает регламент статуса по id
 56        /// </summary>
 57        /// <param name="id">id регламента</param>
 58        /// <returns></returns>
 59        [HttpGet("{id}")]
 60        [SwaggerResponse(200, "Успешно", typeof(List<MovementStatusRouteResponseDTO>))]
 61        [SwaggerResponse(404, "Нет записей", typeof(ErrorDTO))]
 62        [SwaggerResponse(500, "Ошибка на стороне сервера", typeof(ErrorDTO))]
 63        public async Task<IActionResult> GetRoutes(long id)
 064        {
 065            var route = await _movementRouteService.GetRoute(id);
 066            if (route == null)
 067            {
 068                throw new KeyNotFoundException($"Регламент не найден");
 69            }
 070            return Ok(ToDtoMapper().Map<MovementStatusRoute, MovementStatusRouteResponseDTO>(route));
 071        }
 72
 73        /// <summary>
 74        /// Обновляет регламент
 75        /// </summary>
 76        /// <param name="id">id регламента</param>
 77        /// <param name="data">данные для обновления</param>
 78        /// <returns></returns>
 79        [HttpPut("{id}")]
 80        [SwaggerResponse(200, "Успешно", typeof(MovementStatusRouteResponseDTO))]
 81        [SwaggerResponse(404, "Нет записей", typeof(ErrorDTO))]
 82        [SwaggerResponse(500, "Ошибка на стороне сервера", typeof(ErrorDTO))]
 83        public async Task<IActionResult> Update(long id, MovementStatusRouteRequestDTO data)
 084        {
 085            var route = await _movementRouteService.GetRoute(id);
 086            if (route == null)
 087            {
 088                throw new KeyNotFoundException($"Регламент не найден");
 89            }
 090            route.Hour = data.Hour;
 091            await _movementRouteService.UpdateRoute(route);
 92
 093            return Ok(ToDtoMapper().Map<MovementStatusRoute, MovementStatusRouteResponseDTO>(route));
 094        }
 95
 96        private static IMapper ToDtoMapper()
 097        {
 098            var config = new MapperConfiguration(cfg =>
 099            {
 0100                cfg.CreateMap<MovementStatusRoute, MovementStatusRouteResponseDTO>();
 0101                cfg.CreateMap<Department, IdNameDTO>();
 0102                cfg.CreateMap<MovementStatus, IdNameDTO>();
 0103            });
 0104            IMapper mapper = config.CreateMapper();
 0105            return mapper;
 0106        }
 107    }
 108}