Shuxia Ning
2024-08-12 d2cee56db11f0ee475e9f9dbdc8bfd03ad982e18
BLL/HStation.BLL.Xhs.Core/03-localclient/XhsProject.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,313 @@
using HStation.Xhs;
using Yw.Dto;
namespace HStation.CAL.LocalClient
{
    /// <summary>
    /// æŠ¥è­¦ç­‰çº§
    /// </summary>
    public class XhsProject : IXhsProject
    {
        private readonly HStation.Service.XhsProject _service = new();
        #region Query
        /// <summary>
        /// èŽ·å–æ‰€æœ‰
        /// </summary>
        public async Task<List<XhsProjectDto>> GetAll()
        {
            return await Task.Factory.StartNew(() =>
            {
                var list = _service.GetAll();
                var vm_list = list?.Select(x => new XhsProjectDto(x)).ToList();
                return vm_list;
            });
        }
        /// <summary>
        /// é€šè¿‡ ID èŽ·å–
        /// </summary>
        public async Task<XhsProjectDto> GetByID(long ID)
        {
            return await Task.Factory.StartNew(() =>
            {
                var model = _service.GetByID(ID);
                return model == null ? null : new XhsProjectDto(model);
            });
        }
        /// <summary>
        /// é€šè¿‡ Ids èŽ·å–
        /// </summary>
        public async Task<List<XhsProjectDto>> GetByIds(List<long> Ids)
        {
            return await Task.Factory.StartNew(() =>
            {
                var list = _service.GetByIds(Ids);
                var vm_list = list?.Select(x => new XhsProjectDto(x)).ToList();
                return vm_list;
            });
        }
        #endregion Query
        #region Insert
        /// <summary>
        /// æ’入一条
        /// </summary>
        public async Task<long> Insert(AddXhsProjectInput input)
        {
            return await Task.Factory.StartNew(() =>
            {
                var model = input.Adapt<AddXhsProjectInput, Model.XhsProject>();
                model.SortCode = _service.GetMaxSortCode() + 1;
                var id = _service.Insert(model);
                return id;
            });
        }
        /// <summary>
        /// æ‰¹é‡æ’å…¥
        /// </summary>
        public async Task<bool> Inserts(List<AddXhsProjectInput> inputList)
        {
            return await Task.Factory.StartNew(() =>
            {
                var list = inputList.Select(x => x.Adapt<AddXhsProjectInput, Model.XhsProject>()).ToList();
                list.ForEach(x =>
                {
                    x.SortCode = _service.GetMaxSortCode() + 1 + list.IndexOf(x);
                });
                var bol = _service.Inserts(list);
                return bol;
            });
        }
        /// <summary>
        /// å¤§æ‰¹é‡æ’å…¥
        /// </summary>
        public async Task<bool> BulkInserts(List<AddXhsProjectInput> list)
        {
            return await Task.Factory.StartNew(() =>
            {
                return false;
            });
        }
        #endregion Insert
        #region Update
        /// <summary>
        /// æ›´æ–°ä¸€æ¡
        /// </summary>
        public async Task<bool> Update(UpdateXhsProjectInput input)
        {
            return await Task.Factory.StartNew(() =>
            {
                var model = _service.GetByID(input.ID);
                if (model == null)
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"ID:{input.ID} æ•°æ®ä¸å­˜åœ¨");
                }
                var rhs = new Model.XhsProject(model);
                input.Adapt(rhs);
                var bol = _service.Update(rhs);
                return bol;
            });
        }
        /// <summary>
        /// æ‰¹é‡æ›´æ–°
        /// </summary>
        public async Task<bool> Updates(List<UpdateXhsProjectInput> inputList)
        {
            return await Task.Factory.StartNew(() =>
            {
                if (inputList == null || inputList.Count < 1)
                {
                    return false;
                }
                var list = inputList.Select(x => x.Adapt<UpdateXhsProjectInput, Model.XhsProject>()).ToList();
                var bol = _service.Updates(list);
                return bol;
            });
        }
        /// <summary>
        /// å¤§æ‰¹é‡æ›´æ–°
        /// </summary>
        public async Task<bool> BulkUpdates(List<UpdateXhsProjectInput> list)
        {
            return await Task.Factory.StartNew(() =>
            {
                return false;
            });
        }
        /// <summary>
        /// æ›´æ–°ç¼–码
        /// </summary>
        public async Task<bool> UpdateCode(long ID, string Code)
        {
            return await Task.Factory.StartNew(() =>
            {
                return false;
            });
        }
        /// <summary>
        /// æ›´æ–°æŽ’序码
        /// </summary>
        public async Task<bool> UpdateSortCode(long ID, int SortCode)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.UpdateSortCode(ID, SortCode);
                return bol;
            });
        }
        /// <summary>
        /// æ›´æ–°æŽ’序
        /// </summary>
        public async Task<bool> UpdateSorter(List<UpdateSortCodeInput> inputList)
        {
            return await Task.Factory.StartNew(() =>
            {
                var list = inputList.Select(x => x.Adapt<Yw.Model.Sorter>()).ToList();
                var bol = _service.UpdateSorter(list);
                return bol;
            });
        }
        /// <summary>
        /// æ›´æ–° Paras
        /// </summary>
        public async Task<bool> UpdateParas(long ID, Dictionary<string, string> Paras)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.UpdateParas(ID, Paras);
                return bol;
            });
        }
        /// <summary>
        /// æ›´æ–° Flags
        /// </summary>
        public async Task<bool> UpdateFlags(long ID, List<string> Flags)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.UpdateFlags(ID, Flags);
                return bol;
            });
        }
        /// <summary>
        /// æ›´æ–° TagName
        /// </summary>
        public async Task<bool> UpdateTagName(long ID, string TagName)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.UpdateTagName(ID, TagName);
                return bol;
            });
        }
        /// <summary>
        /// æ›´æ–° UseStatus
        /// </summary>
        public async Task<bool> UpdateUseStatus(long ID, int UseStatus)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.UpdateUseStatus(ID, (Yw.Model.eUseStatus)UseStatus);
                return bol;
            });
        }
        #endregion Update
        #region Delete
        /// <summary>
        /// é€šè¿‡ ID åˆ é™¤
        /// </summary>
        public async Task<bool> DeleteByID(long ID)
        {
            return await Task.Factory.StartNew(() =>
            {
                var bol = _service.DeleteByID(ID, out string msg);
                if (!bol)
                {
                    throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, msg);
                }
                return true;
            });
        }
        /// <summary>
        /// é€šè¿‡ Ids åˆ é™¤
        /// </summary>
        public async Task<bool> DeleteByIds(List<long> Ids)
        {
            return await Task.Factory.StartNew(() =>
            {
                return false;
            });
        }
        /// <summary>
        /// åˆ é™¤å…¨éƒ¨
        /// </summary>
        /// <returns></returns>
        public async Task<bool> DeleteAll()
        {
            return await Task.Factory.StartNew(() =>
            {
                return false;
            });
        }
        public Task<long> InsertEx(AddXhsProjectInput projectInput, AddXhsProjectItemInput itemInput, AddXhsProjectItemModelInput modelInput, AddXhsProjectItemModelMapInput MapInput)
        {
            return Task.Factory.StartNew(() =>
            {
                var project = projectInput.Adapt<AddXhsProjectInput, Model.XhsProject>();
                var item = itemInput.Adapt<AddXhsProjectItemInput, Model.XhsProjectItem>();
                var model = modelInput.Adapt<AddXhsProjectItemModelInput, Model.XhsProjectItemModel>();
                var map = MapInput.Adapt<AddXhsProjectItemModelMapInput, Model.XhsProjectItemModelMap>();
                var bol = _service.InsertsEx(project, item, model, map);
                return bol;
            });
        }
        public Task<bool> DeleteEx(long ID)
        {
            return Task.Factory.StartNew(() =>
            {
                var bol = _service.DeleteEx(ID);
                return bol;
            });
        }
        public Task<bool> UpdateEx(UpdateXhsProjectInput projectInput, UpdateXhsProjectItemInput itemInput)
        {
            return Task.Factory.StartNew(() =>
            {
                var project = projectInput.Adapt<UpdateXhsProjectInput, Model.XhsProject>();
                var item = itemInput.Adapt<UpdateXhsProjectItemInput, Model.XhsProjectItem>();
                var bol = _service.UpdateEx(project, item);
                return bol;
            });
        }
        #endregion Delete
    }
}