Ejemplo n.º 1
0
        public bool InsertCallResource(callResource data)
        {
            using (IDbConnection conn = WebConnection)
            {
                try
                {
                    conn.Open();
                    var tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);

                    var result = conn.Insert(data, tran);
                    tran.Commit();


                    return(true);
                }
                catch (Exception ex)
                {
                    throw new Exception("MasterRepository.updateMUnit_Sync() :: Error ", ex);
                }
            }
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UploadSingleFiles([FromForm] ParamUploadImagess data)
        {
            int a = 0;
            //List<TResource> TresourceData = JsonConvert.DeserializeObject<List<TResource>>(data.Resource);
            //string StroageID = base._appSetting.StorageServerId.ToString();

            //com.apthai.QISAPINETCore.Model.QIS.MStorageServer StorageData = _ResourceRepo.GetStorageServerDetail(StroageID);

            //var UploadLoctaion = StorageData.StoragePhysicalPath;
            int SuccessUploadCount = 0;
            int count = 0;

            callResource callResourceDate = new callResource();

            if (data.Files != null)
            {
                // -- New ---- for Docker
                var yearPath  = DateTime.Now.Year;
                var MonthPath = DateTime.Now.Month;
                var dirPath1  = $"{yearPath}/{MonthPath}";
                int dataPath  = 0;
                var uploads   = Path.Combine(_hostingEnvironment.WebRootPath, "data", "uploads", dirPath1);

                string FileBinary;


                long   size          = data.Files.Length;
                string FileExtension = Path.GetExtension(data.Files.FileName); // -------------- > Get File Extention
                var    fileName      = data.Files.FileName;                    // string.Format("{0}{1}" , DateTime.Now.ToString("DDMMyy") , Path.GetExtension(formFile.FileName)); //Path.GetFileName(Path.GetTempFileName());

                var dirPath = $"{yearPath}\\M{dataPath}";

                // --- New Docker ----
                if (!Directory.Exists(uploads))
                {
                    Directory.CreateDirectory(uploads);
                }
                if (data.Files.Length > 0)
                {
                    var filePath = Path.Combine(uploads, data.Files.FileName);
                    var message  = "";
                    if (System.IO.File.Exists(filePath))
                    {
                        string fileNameOnly = Path.GetFileNameWithoutExtension(filePath);
                        string extension    = Path.GetExtension(filePath);
                        string path         = Path.GetDirectoryName(filePath);
                        string newFullPath  = filePath;
                        string tempFileName = string.Format("{0}({1})", fileNameOnly, Guid.NewGuid().ToString());
                        newFullPath = Path.Combine(path, tempFileName + extension);
                        using (var fileStream = new FileStream(newFullPath, FileMode.Create))
                        {
                            message = data.Files.Length.ToString();
                            await data.Files.CopyToAsync(fileStream);

                            fileName = tempFileName + extension;
                        }
                    }
                    else
                    {
                        using (var fileStream = new FileStream(filePath, FileMode.Create))
                        {
                            message = data.Files.Length.ToString();
                            await data.Files.CopyToAsync(fileStream);
                        }
                    }

                    // -- -End New -----
                    //if (System.IO.File.Exists(savePath.FullName))
                    if (System.IO.File.Exists(filePath))
                    {
                        string FileExtention = Path.GetExtension(filePath);
                        // ----- Old -----
                        //TresourceData[i].FilePath = "data\\uploads\\" + dirPath + "\\" + fileName;
                        // ----- New Docker -----
                        callResourceDate.FilePath           = "data/uploads/" + yearPath + "/" + MonthPath + "/" + fileName;
                        callResourceDate.FileLength         = size;
                        callResourceDate.CreateDate         = DateTime.Now;
                        callResourceDate.RowState           = "Original";
                        callResourceDate.ResourceType       = data.ResourceType;
                        callResourceDate.ResourceTagCode    = data.ResourceTagCode;
                        callResourceDate.ResourceGroupSet   = null;
                        callResourceDate.ResourceGroupOrder = 0;
                        callResourceDate.TDefectDetailId    = data.TDefectDetailId == "" ? 0 : Convert.ToInt32(data.TDefectDetailId);
                        callResourceDate.ProjectNo          = data.ProjectCode;
                        callResourceDate.SerialNo           = data.UnitNo;
                        //TresourceData[i].FilePath = "data/uploads/" + yearPath + "/" + MonthPath + "/" + fileName;
                        //TresourceData[i].FileLength = size;
                        //TresourceData[i].CreatedDate = DateTime.Now;
                        //TresourceData[i].CreateUserId = Convert.ToInt32(data.UserID);
                        //TresourceData[i].RowSyncDate = DateTime.Now;
                        //TresourceData[i].StorageServerId = StorageData.StorageServerId;
                        bool InsertResult = _syncRepository.InsertCallResource(callResourceDate);

                        //if (InsertResult == true)
                        //{
                        //SuccessUploadCount++;
                        //Model.QIS.TResource TresourceTransfer = new Model.QIS.TResource();
                        //TresourceTransfer.ResourceType = TresourceData[i].ResourceType;
                        //TresourceTransfer.ResourceTagCode = TresourceData[i].ResourceTagCode;
                        //TresourceTransfer.ResourceTagSubCode = TresourceData[i].ResourceTagSubCode;
                        //TresourceTransfer.ResourceGroupSet = TresourceData[i].ResourceGroupSet;
                        //TresourceTransfer.ResourceGroupOrder = TresourceData[i].ResourceGroupOrder;
                        //TresourceTransfer.ResourceMineType = TresourceData[i].ResourceMineType;
                        //TresourceTransfer.ProjectId = TresourceData[i].ProjectId;
                        //TresourceTransfer.UnitId = TresourceData[i].UnitId;
                        ////TresourceTransfer.FilePath = _appSetting.PictureRootURL + TresourceData[i].FilePath;
                        //TresourceTransfer.FilePath = Environment.GetEnvironmentVariable("PictureRootURL") + TresourceData[i].FilePath;
                        //TresourceTransfer.Description = TresourceData[i].Description;
                        //TresourceTransfer.IsActive = TresourceData[i].IsActive;
                        //TresourceTransfer.StorageServerId = TresourceData[i].StorageServerId;
                        //TresourceTransfer.PhaseId = TresourceData[i].PhaseId;
                        //TresourceTransfer.HeaderId = TresourceData[i].HeaderId;
                        //TresourceTransfer.DetailId = TresourceData[i].DetailId;
                        //TresourceTransfer.UDetailId = TresourceData[i].UDetailId;
                        //TresourceTransfer.UDetail_RowClientId = TresourceData[i].UDetail_RowClientId;
                        //TresourceTransfer.Tag = TresourceData[i].Tag;
                        //TresourceTransfer.RowClientId = TresourceData[i].RowClientId;
                        //TresourceTransfer.RowState = TresourceData[i].RowState;
                        //TresourceTransfer.RowVersion = TresourceData[i].RowVersion;
                        //TresourceTransfer.RowSyncDate = TresourceData[i].RowSyncDate;
                        //TresourceTransfer.CreateDeviceId = TresourceData[i].CreateDeviceId;
                        //TresourceTransfer.CreateUserId = TresourceData[i].CreateUserId;
                        //TresourceTransfer.ModifiedDeviceId = TresourceData[i].ModifiedDeviceId;
                        //TresourceTransfer.ModifiedUserId = TresourceData[i].ModifiedUserId;
                        //TresourceTransfer.CreatedDate = TresourceData[i].CreatedDate;
                        //TresourceTransfer.ModifiedUserId = TresourceData[i].ModifiedUserId;
                        //TresourceTransfer.UFHeaderId = TresourceData[i].UFHeaderId;
                        //TresourceTransfer.UHeaderId = TresourceData[i].UHeaderId;
                        //TresourceTransfer.UFDetailId = TresourceData[i].UFDetailID;
                        //TresourceTransfer.FileLength = TresourceData[i].FileLength;
                        //TresourceTransfer.UPhaseId = TresourceData[i].UPhaseId;
                        //TresourceTransfer.UPhase_RowClientId = TresourceData[i].UPhase_RowClientId;
                        //TresourceTransfer.UHeader_RowClientId = TresourceData[i].UHeader_RowClientId;
                        //TresourceTransfer.UFPhase_RowClientId = TresourceData[i].UFPhase_RowClientId;
                        //TresourceTransfer.UFHeader_RowClientId = TresourceData[i].UFHeader_RowClientId;
                        //TresourceTransfer.UFDetail_RowClientId = TresourceData[i].UFDetail_RowClientId;
                        //TresourceTransfer.TagState = TresourceData[i].TagState;
                        //TresourceTransfer.ClientDataType = TresourceData[i].ClientDataType;

                        //bool InsertResultWeb = _ResourceRepo.InsertTResourceWeb(TresourceTransfer);
                        //}
                    }
                }
            }
            else
            {
                return(Ok(new { count = 1 }));
            }


            return(Ok(new { count = 1, }));
        }
Ejemplo n.º 3
0
        public async Task GenerateReport(ParamReportModel model)
        {
            try
            {
                var reportName = "";

                // V แนวสูง
                // H แนวราบ
                await UpdatePathUrlFile(model.TDefectId);

                string bucketName = Environment.GetEnvironmentVariable("Minio_DefaultBucket") ?? UtilsProvider.AppSetting.MinioDefaultBucket;
                minio = new MinioServices();
                bool insertPDF = false;
                List <callResource> Signature = _masterRepository.GetSignatureByTdefectID(model.TDefectId);
                string lcSigAf  = Signature.Where(w => w.ResourceTagCode == "SAL-LC-AF").Any() ? Signature.Where(w => w.ResourceTagCode == "SAL-LC-AF").FirstOrDefault().FilePath : null;
                string cusSigBf = Signature.Where(w => w.ResourceTagCode == "CUST-BF").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-BF").FirstOrDefault().FilePath : null;
                string cusSigAf = Signature.Where(w => w.ResourceTagCode == "CUST-AF").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-AF").FirstOrDefault().FilePath : null;
                string conSigBf = Signature.Where(w => w.ResourceTagCode == "CON-MGR-BF").Any() ? Signature.Where(w => w.ResourceTagCode == "CON-MGR-BF").FirstOrDefault().FilePath : null;
                string conSigAf = Signature.Where(w => w.ResourceTagCode == "CON-MGR-AF").Any() ? Signature.Where(w => w.ResourceTagCode == "CON-MGR-AF").FirstOrDefault().FilePath : null;
                string cusSigRe = Signature.Where(w => w.ResourceTagCode == "CUST-RECE").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-RECE").FirstOrDefault().FilePath : null;

                var listCus = new List <string>()
                {
                    "CUST-BF", "CUST-AF", "CUST-RECE"
                };
                var orderCusSignature = Signature.Where(w => listCus.Contains(w.ResourceTagCode)).OrderBy(o => o.CreateDate).ToList();

                var dateCusSigBf = Signature.Where(w => w.ResourceTagCode == "CUST-BF").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-BF").FirstOrDefault().CreateDate : null;
                var dateCusSigAf = Signature.Where(w => w.ResourceTagCode == "CUST-AF").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-AF").FirstOrDefault().CreateDate : null;
                var dateCusSigRe = Signature.Where(w => w.ResourceTagCode == "CUST-RECE").Any() ? Signature.Where(w => w.ResourceTagCode == "CUST-RECE").FirstOrDefault().CreateDate : null;

                string cusBfDatetime = "";
                string cusAfDatetime = "";
                string cusReDatetime = "";

                if (dateCusSigBf != null)
                {
                    cusBfDatetime = dateCusSigBf.Value.ToString("dd/MM/yyyy");
                }

                if (dateCusSigAf != null)
                {
                    cusAfDatetime = dateCusSigAf.Value.ToString("dd/MM/yyyy");
                }

                if (dateCusSigRe != null)
                {
                    cusReDatetime = string.Format("ลูกค้าเช็นต์รับบ้านแล้ว {0}", dateCusSigRe.Value.ToString("dd/MM/yyyy"));
                }


                string alternativeDate = "";
                var    indexCusRe      = orderCusSignature.FindIndex(w => w.ResourceTagCode == "CUST-RECE");
                if (indexCusRe != 0 && indexCusRe != -1)
                {
                    if (orderCusSignature[indexCusRe - 1].ResourceTagCode == "CUST-BF")
                    {
                        alternativeDate = string.Format("ลูกค้าเช็นต์ก่อนซ่อมแล้ว {0}", cusBfDatetime);
                    }

                    if (orderCusSignature[indexCusRe - 1].ResourceTagCode == "CUST-AF")
                    {
                        alternativeDate = string.Format("ลูกค้าเช็นต์หลังซ่อมแล้ว {0}", cusAfDatetime);
                    }
                }

                if (model.ProjectType.Equals("V"))
                {
                    if (model.SignatureType == "CUST-BF")
                    {
                        reportName = "RPT_ReceiveUnit_Vertical_CUST_BF";
                    }
                    else if (model.SignatureType == "CUST-AF")
                    {
                        reportName = "RPT_ReceiveUnit_Vertical_CUST_AF";
                    }
                    else
                    {
                        reportName = "RPT_ReceiveUnit_Vertical_CUST_RECE";
                    }
                }
                else
                {
                    if (model.SignatureType == "CUST-BF")
                    {
                        reportName = "RPT_ReceiveUnit_Horizontal_CUST_BF";
                    }
                    else if (model.SignatureType == "CUST-AF")
                    {
                        reportName = "RPT_ReceiveUnit_Horizontal_CUST_AF";
                    }
                    else
                    {
                        reportName = "RPT_ReceiveUnit_Horizontal_CUST_RECE";
                    }
                }

                string lcSigAffilePath = String.IsNullOrEmpty(lcSigAf) ? null : await minio.GetFileUrlAsync(bucketName, lcSigAf);

                string cusSigBfFilePath = String.IsNullOrEmpty(cusSigBf) ? null : await minio.GetFileUrlAsync(bucketName, cusSigBf);

                string cusSigAfFilePath = String.IsNullOrEmpty(cusSigAf) ? null : await minio.GetFileUrlAsync(bucketName, cusSigAf);

                string conSigBfFilePath = String.IsNullOrEmpty(conSigBf) ? null : await minio.GetFileUrlAsync(bucketName, conSigBf);

                string conSigAfFilePath = String.IsNullOrEmpty(conSigAf) ? null : await minio.GetFileUrlAsync(bucketName, conSigAf);

                string cusSigReFilePath = String.IsNullOrEmpty(cusSigRe) ? null : await minio.GetFileUrlAsync(bucketName, cusSigRe);

                var requestMode = new RequestReportModel()
                {
                    Folder       = "defect",
                    FileName     = reportName,
                    Server       = Environment.GetEnvironmentVariable("ReportServer") ?? UtilsProvider.AppSetting.ReportServer,
                    DatabaseName = Environment.GetEnvironmentVariable("ReportDataBase") ?? UtilsProvider.AppSetting.ReportDataBase,
                    UserName     = Environment.GetEnvironmentVariable("ReportUserName") ?? UtilsProvider.AppSetting.ReportUserName,
                    Password     = Environment.GetEnvironmentVariable("ReportPassword") ?? UtilsProvider.AppSetting.ReportPassword,
                    Parameters   = new List <ParameterReport>()
                    {
                        new ParameterReport()
                        {
                            Name = "@TDefectId", Value = model.TDefectId.ToString()
                        },
                        new ParameterReport()
                        {
                            Name = "@CustRoundAuditNo", Value = "1"
                        },
                        new ParameterReport()
                        {
                            Name = "@CON_MGR_AF_URL", Value = conSigAfFilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@CON_MGR_BF_URL", Value = conSigBfFilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@CUST_AF_URL", Value = cusSigAfFilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@CUST_BF_URL", Value = cusSigBfFilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@CUST_RECE", Value = cusSigReFilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@SAL_LC_AF", Value = lcSigAffilePath
                        },
                        new ParameterReport()
                        {
                            Name = "@ALTERNATIVE_DATE", Value = alternativeDate
                        },
                        new ParameterReport()
                        {
                            Name = "@CUS_RECE_SIGN_DATE", Value = cusReDatetime
                        }
                    }
                };
                ResponsetReportModel resultObject = new ResponsetReportModel();
                using (HttpClient client = new HttpClient())
                {
                    client.Timeout = new TimeSpan(0, 0, 1000);
                    var urlReport = Environment.GetEnvironmentVariable("ReportURL") ?? UtilsProvider.AppSetting.ReportURL;
                    var reportKey = Environment.GetEnvironmentVariable("ReportKey") ?? UtilsProvider.AppSetting.ReportKey;
                    var Content   = new StringContent(JsonConvert.SerializeObject(requestMode));
                    Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                    Content.Headers.Add("api_accesskey", reportKey);
                    var response = await client.PostAsync(urlReport, Content);

                    if (response.IsSuccessStatusCode)
                    {
                        response.EnsureSuccessStatusCode();
                        var result = await response.Content.ReadAsStringAsync();

                        resultObject = JsonConvert.DeserializeObject <ResponsetReportModel>(result);
                    }
                    client.Dispose();
                }
                await Task.Delay(3000);

                long sizeFile = 0;
                var  fullUrl  = "";
                var  path     = $"{model.ProjectCode}/{model.UnitNo}/DefectDocument";
                if (resultObject.Success)
                {
                    using (HttpClient client = new HttpClient())
                    {
                        HttpResponseMessage resDownload = await client.GetAsync(resultObject.URL.ToString()).ConfigureAwait(false);

                        HttpContent content = resDownload.Content;

                        // ... Read the string.
                        var result = await content.ReadAsByteArrayAsync().ConfigureAwait(false);

                        Stream stream = new MemoryStream(result);
                        var    file   = new FormFile(stream, 0, stream.Length, null, resultObject.FileName)
                        {
                            Headers     = new HeaderDictionary(),
                            ContentType = "application/pdf"
                        };
                        sizeFile = file.Length;
                        var resultMinio = await minio.UploadFile(file, path, resultObject.FileName);

                        fullUrl = resultMinio.Url;

                        client.Dispose();
                    }

                    callResource callResourcePDF = new callResource();
                    callResourcePDF.FilePath           = $"{path}/{resultObject.FileName}";
                    callResourcePDF.FileLength         = sizeFile;
                    callResourcePDF.CreateDate         = DateTime.Now;
                    callResourcePDF.RowState           = "Original";
                    callResourcePDF.ResourceType       = 8;
                    callResourcePDF.ResourceTagCode    = "1";
                    callResourcePDF.ResourceTagSubCode = "1";
                    callResourcePDF.ResourceGroupSet   = null;
                    callResourcePDF.StorageServerId    = 1400;
                    callResourcePDF.ResourceGroupOrder = 0;
                    callResourcePDF.TDefectDetailId    = 0;
                    callResourcePDF.TDefectId          = (int)model.TDefectId;
                    callResourcePDF.ProjectNo          = model.ProjectCode;
                    callResourcePDF.SerialNo           = model.UnitNo;
                    callResourcePDF.Active             = true;
                    callResourcePDF.FullFilePath       = fullUrl;
                    callResourcePDF.UserId             = model.EmpCode;
                    callResourcePDF.ExpirePathDate     = DateTime.Now.AddDays(6);;
                    insertPDF = InsertCallResource(callResourcePDF);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }