Ejemplo n.º 1
0
        protected async Task <List <FileProfile> > GetFileUploadMcreditAsync(int profileId, string mcId = null, string webRootPath = null)
        {
            var profile = await _rpMCredit.GetTemProfileByIdAsync(profileId);

            if (!profile.success || profile.data == null)
            {
                return(ToResponse <List <FileProfile> >(null, "Hồ sơ không tồn tại"));
            }

            if (string.IsNullOrWhiteSpace(profile.data.ProductCode))
            {
                return(ToResponse <List <FileProfile> >(null, "Vui lòng chọn sản phẩm vay"));
            }

            if (string.IsNullOrWhiteSpace(profile.data.LocSignCode))
            {
                return(ToResponse <List <FileProfile> >(null, "Vui lòng chọn địa điểm ký văn kiện"));
            }

            var data = await _svMcredit.GetFileUpload(new GetFileUploadRequest
            {
                Code    = profile.data.ProductCode.Trim(),
                Id      = "0",
                Loccode = profile.data.LocSignCode.Trim(),
                Issl    = profile.data.IsAddr ? "1" : "0",
                Money   = profile.data.LoanMoney.ToString().Replace(",0000", "")
            });

            await _rpLog.InsertLog($"mcredit-GetFileUpload-{mcId}", data.Dump());

            if (!data.success)
            {
                return(ToResponse <List <FileProfile> >(null, data.error));
            }
            var uploadedFiles = new List <FileUploadModel>();

            if (profileId > 0)
            {
                uploadedFiles = await _rpFile.GetFilesByProfileIdAsync((int)ProfileType.MCredit, profileId);
            }
            if (uploadedFiles == null)
            {
                uploadedFiles = new List <FileUploadModel>();
            }
            var result = new List <FileProfile>();
            var groups = data.data.Groups;

            foreach (var group in groups)
            {
                if (group.Documents == null)
                {
                    continue;
                }

                foreach (var doc in group.Documents)
                {
                    if (group.GroupId == 24 && doc.DocumentCode == "ElectricBill")
                    {
                        continue;
                    }
                    var files = uploadedFiles.Where(p => p.Key == doc.Id && p.MC_GroupId == group.GroupId);
                    result.Add(new FileProfile
                    {
                        Id             = doc.Id,
                        FileKey        = doc.Id,
                        RootPath       = webRootPath,
                        IsRequire      = group.Mandatory ? 1 : 0,
                        Name           = doc.DocumentName,
                        DocumentId     = doc.Id,
                        GroupId        = group.GroupId,
                        GroupName      = group.GroupName,
                        IsRequireGroup = group.Mandatory,
                        DocumentCode   = doc.DocumentCode,
                        MapBpmVar      = doc.MapBpmVar,
                        ProfileId      = profileId,
                        ProfileTypeId  = (int)ProfileType.MCredit,
                        DocumentName   = doc.DocumentName,
                        ProfileFiles   = files.ToList(),
                        AllowUpload    = string.IsNullOrWhiteSpace(profile.data.MCId)
                    });
                }
            }
            result = result.OrderByDescending(p => p.IsRequire == 1).ToList();
            return(result);
        }
Ejemplo n.º 2
0
        public async Task <JsonResult> GetFileUpload(int profileId, int profileType = 3, string mcId = null)
        {
            var profile = null as MCredit_TempProfile;

            profile = await _rpMCredit.GetTemProfileById(profileId);

            if (profile == null)
            {
                return(ToJsonResponse(false, "Hồ sơ không tồn tại", new List <LoaiTaiLieuModel>()));
            }
            var code = profile.ProductCode != null?profile.ProductCode.Trim() : null;

            var Loccode = profile.LocSignCode != null?profile.LocSignCode.Trim() : null;

            var data = await _svMCredit.GetFileUpload(new GetFileUploadRequest
            {
                Code    = code,
                Id      = "0",
                Loccode = Loccode,
                Issl    = profile.IsAddr ? "1" : "0",
                Money   = profile.LoanMoney.ToString().Replace(",0000", "")
            }, GlobalData.User.IDUser);

            await _rpLog.InsertLog($"mcredit-GetFileUpload-{mcId}", data.Dump());

            if (data == null || data.Groups == null)
            {
                return(ToJsonResponse(false, "Không thể lấy file", new List <LoaiTaiLieuModel>()));
            }
            var uploadedFiles = new List <FileUploadModel>();

            if (profileId > 0)
            {
                uploadedFiles = await _rpTailieu.GetTailieuByHosoId(profile.Id, (int)HosoType.MCredit);
            }
            if (uploadedFiles == null)
            {
                uploadedFiles = new List <FileUploadModel>();
            }
            var result = new List <LoaiTaiLieuModel>();

            foreach (var group in data.Groups)
            {
                if (group.Documents == null)
                {
                    continue;
                }

                foreach (var doc in group.Documents)
                {
                    if (group.GroupId == 24 && doc.DocumentCode == "ElectricBill")
                    {
                        continue;
                    }
                    var files = uploadedFiles.Where(p => p.Key == doc.Id && p.MC_GroupId == group.GroupId);
                    result.Add(new MCFileUpload
                    {
                        ID            = doc.Id,
                        BatBuoc       = group.Mandatory ? 1 : 0,
                        Ten           = doc.DocumentName,
                        DocumentId    = doc.Id,
                        GroupId       = group.GroupId,
                        DocumentCode  = doc.DocumentCode,
                        MapBpmVar     = doc.MapBpmVar,
                        ProfileId     = profileId,
                        ProfileTypeId = profileType,
                        DocumentName  = doc.DocumentName,
                        Tailieus      = files.ToList(),
                        AllowUpload   = string.IsNullOrWhiteSpace(profile.MCId)
                    });
                }
            }
            result = result.OrderByDescending(p => p.BatBuoc == 1).ToList();
            return(ToJsonResponse(true, "", result));
        }