< Summary

Class:SVETA.Api.Data.DTO.Goods.DownloadGoodsImagesStatusDTO
Assembly:SVETA.Api
File(s):/opt/dev/sveta_api_build/SVETA.Api/Data/DTO/Goods/DownloadGoodsImagesStatusDTO.cs
Covered lines:0
Uncovered lines:40
Coverable lines:40
Total lines:101
Line coverage:0% (0 of 40)
Covered branches:0
Total branches:8
Branch coverage:0% (0 of 8)

Metrics

MethodLine coverage Branch coverage
.ctor()0%100%
.ctor(...)0%0%
get_Status()0%100%
get_DownloadUrl()0%100%
get_Error()0%100%

File(s)

/opt/dev/sveta_api_build/SVETA.Api/Data/DTO/Goods/DownloadGoodsImagesStatusDTO.cs

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using System.Threading.Tasks;
 5using WinSolutions.Sveta.Server.Data.DataModel.Entities;
 6
 7namespace SVETA.Api.Data.DTO.Goods
 8{
 9    /// <summary>
 10    /// Перечисление с текущим статусом выгрузки изображений товаров
 11    /// </summary>
 12    public enum DownloadGoodsImagesStatusEnumDTO
 13    {
 14        /// <summary>
 15        /// Нет текущей выгрузки
 16        /// </summary>
 17        None,
 18
 19        /// <summary>
 20        /// Ждет в очереди на обработку
 21        /// </summary>
 22        Pending,
 23
 24        /// <summary>
 25        /// Выгружается
 26        /// </summary>
 27        InProgress,
 28
 29        /// <summary>
 30        /// Успешно завершена
 31        /// </summary>
 32        Finished,
 33
 34        /// <summary>
 35        /// В процессе выгрузки произошла ошибка
 36        /// </summary>
 37        Error
 38    }
 39
 40    public class DownloadGoodsImagesStatusDTO
 41    {
 042        public DownloadGoodsImagesStatusDTO()
 043        {
 044            Status = new IdNameDTO((long)DownloadGoodsImagesStatusEnumDTO.None, "Нет активных скачиваний");
 045        }
 46
 047        public DownloadGoodsImagesStatusDTO(DownloadGoodsImagesTask data)
 048        {
 049            if (data.InProgress)
 050            {
 051                Status = new IdNameDTO((long)DownloadGoodsImagesStatusEnumDTO.InProgress, "Выгружается");
 052            }
 53            else
 054            {
 055                if (!string.IsNullOrEmpty(data.Error))
 056                {
 057                    Status = new IdNameDTO((long)DownloadGoodsImagesStatusEnumDTO.Error, "Ошибка");
 058                }
 59                else
 060                {
 061                    if (!data.FinishedDate.HasValue)
 062                    {
 063                        Status = new IdNameDTO((long)DownloadGoodsImagesStatusEnumDTO.Pending, "В очереди");
 064                    }
 65                    else
 066                    {
 067                        Status = new IdNameDTO((long)DownloadGoodsImagesStatusEnumDTO.Finished, "Завершено");
 068                    }
 069                }
 070            }
 71
 072            DownloadUrl = data.DownloadUrl;
 73
 074            if(Status.Id == (long)DownloadGoodsImagesStatusEnumDTO.Error)
 075            {
 076                Error = new ErrorDTO
 077                {
 078                    error = data.Error,
 079                    stackTrace = data.StackTrace,
 080                    innerError = data.InnerError,
 081                    innerStackTrace = data.InnerStackTrace
 082                };
 083            }
 084        }
 85
 86        /// <summary>
 87        /// Текущий статус
 88        /// </summary>
 089        public IdNameDTO Status { get; set; }
 90
 91        /// <summary>
 92        /// Ссылка для скачивания архива с выгрузкой. Актуально, только если Status == DownloadGoodsImagesStatusEnumDTO.
 93        /// </summary>
 094        public string DownloadUrl { get; set; }
 95
 96        /// <summary>
 97        /// Ошибка выгрузки. Актуально, только если Status == DownloadGoodsImagesStatusEnumDTO.Error
 98        /// </summary>
 099        public ErrorDTO Error { get; set; }
 100    }
 101}