示例#1
0
    public static DataTable ToDataTable(this SimpleDataTable self, int maxRows = int.MaxValue)
    {
        var dt = new DataTable();

        foreach (var col in self.Columns)
        {
            dt.Columns.Add(col);
        }
        dt.BeginLoadData();
        foreach (var row in self.Rows)
        {
            var objs = new object[row.Length];
            for (int i = 0; i < row.Length; i++)
            {
                objs[i] =
                    row[i] switch {
                    double n => $"{n:0.####}",
                    byte[] bytes => BlobUtil.ToString(bytes),
                    _ => row[i]
                };
            }
            dt.LoadDataRow(objs, true);

            if (dt.Rows.Count >= maxRows)
            {
                break;
            }
        }
        dt.EndLoadData();
        return(dt);
    }
示例#2
0
        public ActionResult SendPDF(string formXml, string xsnName, string viewName, string toEmail, string emailBody)
        {
            var spContext = SharePointContextProvider.Current.GetSharePointContext(System.Web.HttpContext.Current);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                SP.User spUser = GetSharePointUser(clientContext);

                string internalUserID = null;

                // Store data for processing
                string            tenantID = TokenHelper.GetRealmFromTargetUrl(new Uri(clientContext.Url));
                RequestIdentifier rid      = RequestUtil.AddRequestEntity(PdfRequestType.SendPDF, PdfRequestStatus.InProgress, tenantID, internalUserID);

                PDFRequest response = new PDFRequest();
                response.RequestID   = rid.ID;
                response.RequestType = PdfRequestType.SendPDF;
                response.Status      = PdfRequestStatus.InProgress;
                response.Message     = "";

                BlobUtil bu = null;
                try
                {
                    bu = new BlobUtil();

                    ParameterCollection plist = new ParameterCollection();
                    plist.Add(Parameters.Api, "SendPDF");
                    plist.Add(Parameters.ViewName, viewName ?? "");
                    plist.Add(Parameters.UserID, internalUserID);
                    plist.Add(Parameters.XsnName, xsnName ?? "");
                    plist.Add(Parameters.FromEmail, spUser.Email ?? "");
                    plist.Add(Parameters.ToEmail, toEmail ?? "");
                    plist.Add(Parameters.EmailBody, emailBody ?? "");

                    BlobCollection bc = new BlobCollection();
                    bc.Add("xml", formXml);
                    bc.Add("parameters", plist);
                    bu.StoreRequestArguments(rid.ID, bc);

                    // post to queue
                    PdfServiceQueues.XmlToHtmlClient.AddMessage(rid.ID, internalUserID);
                }
                catch (Exception ex)
                {
                    // Update request status
                    response.Status  = PdfRequestStatus.Error;
                    response.Message = ex.Message;
                    RequestUtil.UpdateRequestStatus(rid.ID, PdfRequestStatus.Error, ex.Message);
                    //PdfServiceQueues.EmailSendClient.AddErrorMessage(requestID, internalUserID.Value, ex.Message);
                }
                finally
                {
                }
                return(new ObjectResult <PDFRequest>(response));
            }
        }
示例#3
0
    private void ExecutePrintStmt(Ast.PrintStmt stmt, ScriptEnv env)
    {
        var value = EvaluateExpr(stmt.Value, env);

        if (value is byte[] byteArray)
        {
            env.Output.TextOutput.Add(BlobUtil.ToString(byteArray));
            return;
        }

        env.Output.TextOutput.Add(value.ToString());
    }
        public async Task<ActionResult> Details(int? id)
        {
            if (id == null) return RedirectToAction("Index");

            var queryable = dbContext.Claims.Include(i => i.Vehicle.Customer)
                                        .Where(i => i.Id == id);
            var claim = await queryable.FirstOrDefaultAsync();
            if (claim == null) return HttpNotFound();


            var vehicle = claim.Vehicle;
            var customer = vehicle.Customer;
            var otherParty = claim.OtherParty;

            var queryClaims = dbContext.Claims.Where(i => i.Vehicle.CustomerId == customer.Id)
                                              .Select(i => new
                                              {
                                                  claimId = i.Id,
                                                  firstName = i.Vehicle.Customer.FirstName,
                                                  lastName = i.Vehicle.Customer.LastName,
                                                  claimType = i.Type,
                                                  dueDate = i.DateTime,
                                                  claimStatus = i.Status.ToString(),
                                                  damageAssessment = i.DamageAssessment.ToString()
                                              });

            var claimHistory = await queryClaims.ToListAsync();
            var result = new
            {
                claimId = claim.Id,
                correlationId = claim.CorrelationId,
                dateTime = claim.DateTime,
                dueDate = claim.DueDate,
                status = claim.Status.ToString(),
                damageAssessment = claim.DamageAssessment.ToString(),
                location = new
                {
                    longitude = claim.Coordinates?.Longitude,
                    latitude = claim.Coordinates?.Latitude,
                },
                description = claim.Description,
                customer = new
                {
                    name = customer.FirstName + ' ' + customer.LastName,
                    street = customer.Street,
                    city = customer.City,
                    state = customer.State,
                    zip = customer.Zip,
                    dob = customer.DOB,
                    phone = customer.MobilePhone,
                    email = customer.Email,
                    policyId = customer.PolicyId,
                    policyStart = customer.PolicyStart,
                    driversLicenseNumber = customer.DriversLicenseNumber,
                },
                vehicle = new
                {
                    vehicleNumber = vehicle.VIN,
                    licensePlate = vehicle.LicensePlate
                },
                otherParty = new
                {
                    name = otherParty.FirstName + " " + otherParty.LastName,
                    street = otherParty.Street,
                    city = otherParty.City,
                    state = otherParty.State,
                    zip = otherParty.Zip,
                    dob = otherParty.DOB,
                    phone = otherParty.MobilePhone,
                    email = "",
                    licensePlate = otherParty.LicensePlate,
                    policyId = otherParty.PolicyId,
                    vehicleNumber = otherParty.VIN,
                    driversLicenseNumber = otherParty.DriversLicenseNumber,
                    licensePlateImageURL = BlobUtil.ConverToBlobSas(otherParty.LicensePlateImageUrl),
                    insuranceCardImageURL = BlobUtil.ConverToBlobSas(otherParty.InsuranceCardImageUrl),
                    driversLicenseImageURL = BlobUtil.ConverToBlobSas(otherParty.DriversLicenseImageUrl)
                },
                images = claim.Images.Select(i => BlobUtil.ConverToBlobSas(i.ImageUrl)).ToArray(),
                claimHisotry = claimHistory
            };

            ViewData["claimData"] = JsonConvert.SerializeObject(result); ;
            return View();
        }