using Newtonsoft.Json;
using OASystem.Domain.Attributes;
using OASystem.Domain.Entities.Resource;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.ViewModels.Resource
{
    public class TranslatorLibraryView : Res_TranslatorLibrary
    {
    }

    public class TranslatorLibraryInfoView
    {
        public int Id { get; set; }

        /// <summary>
        /// 所在地区
        /// </summary>
        public string Area { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 性别(0:未设置 1:男 2:女)
        /// </summary>
        public int Sex { get; set; }

        /// <summary>
        /// 照片
        /// </summary>
        public string Photo { get; set; }


        /// <summary>
        /// 联系电话
        /// </summary>
        public string Tel { get; set; }

        /// <summary>
        /// 邮箱号
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// 微信号
        /// </summary>
        public string WechatNo { get; set; }

        /// <summary>
        /// 其他社交账号
        /// </summary>
        public string OtherSocialAccounts { get; set; }

        /// <summary>
        /// 语种
        /// </summary>
        public string Language { get; set; }

        /// <summary>
        /// 费用
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 币种
        /// </summary>
        public int Currency { get; set; }

        /// <summary>
        /// 简历或其他证书
        /// </summary>
        public string Files { get; set; }

        /// <summary>
        /// 简历或其他证书
        /// </summary>
        public FileInfoView[] FilePaths
        {
            get
            {
                var files1 = new List<FileInfoView>();
                var files = new List<string>();

                if (!string.IsNullOrEmpty(Files))
                {
                    try
                    {
                        files = JsonConvert.DeserializeObject<List<string>>(Files);
                        for (int i = 0; i < files.Count; i++)
                        {
                            files1.Add(new FileInfoView()
                            {
                                FileName = files[i].ToString(),
                                FilePathName = $"http://132.232.92.186:24/Office/GrpFile/TranslatorLibrary/{files[i].ToString()}"
                            });
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
                return files1.ToArray();
            }
        }

        /// <summary>
        /// 公务出访Id集合
        /// </summary>
        public int[] OfficialDutyIdItem { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }

    public class FileInfoView
    {
        public string FileName { get; set; }
        public string FilePathName { get; set; }
    }

    public class TranslatorLibraryItemView 
    {
        public int Id { get; set; }

        [Encrypted]
        public string Area { get; set; }

        [Encrypted]
        public string Name { get; set; }

        public string Sex { get; set; }
        [Encrypted]
        public string Tel { get; set; }

        [Encrypted]
        public string Email { get; set; }

        [Encrypted]
        public string WechatNo { get; set; }

        [Encrypted]
        public string Language { get; set; }

        public decimal Price { get; set; }

        public string Currency { get; set; }

        public string CreateUserName { get; set; }

        public DateTime CreateTime { get; set; }
        [Encrypted]
        public string Remark { get; set; }
        public DateTime LastUpddateTime { get; set; }
        /// <summary>
        /// 最后更新时间距今天的天数
        /// </summary>
        public int LastUpdateDays
        {
            get
            {
                int days = 0;
                if (LastUpddateTime == DateTime.MinValue)
                {
                    days = DateTime.Now.Subtract(CreateTime).Days;
                    LastUpddateTime = CreateTime;
                }
                else days = DateTime.Now.Subtract(LastUpddateTime).Days;
                return days;
            }
        }
    }


    public class TranslatorLibraryNameView
    {
        public int Id { get; set; }

        [Encrypted]
        public string Name { get; set; }
    }
}