Search This Blog

Saturday, 6 April 2019

Upload File using Jquery AJAX in Asp.net


Step 1: - Open Visual Studio 2015 => Go to File Menu => New => Project...

Step 2: - In the Installed Templates list, select Visual C# => Web

Step 3: - Select ASP.Net Web Application (.NET Framework) from the Web list => Type UploadFileJqueryAJAX in the Name box and click OK

Step 4: - Select Empty template from ASP.NET Templates List and Check Web Forms check box under Add folders and core references for:






























Step 5: - Right Click on Project Root folder => Add => New Items... => Expand Visual C# from Left Pane and Select Web => Select Web Form from Middle Pane => Type FileUpload.aspx in Name box => Click Add

Step 6: - Copy Past following Html in FileUpload.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileUpload.aspx.cs" Inherits="UploadFileJqueryAJAX.FileUpload" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Upload File using Jquery AJAX in Asp.net</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script>
        $(document).ready(function () {
            $("#FileUpload1").change(function () {
                var fileUpload = $("#FileUpload1").get(0);
                var files = fileUpload.files;

                if (files && files[0]) {
                    var reader = new FileReader();
                    reader.onload = function (e) {
                        $("#Image1").attr("src", e.target.result);
                    }
                    reader.readAsDataURL(files[0]);
                }
            });

            $("#btnUpload").click(function (e) {
                var fileUpload = $("#FileUpload1").get(0);
                var files = fileUpload.files;

                var data = new FormData();
                if (files.length > 0) {
                    data.append(files[0].name, files[0]);
                }

                $.ajax({
                    url: "FileUploadHandler.ashx",
                    type: "POST",
                    data: data,
                    contentType: false,
                    processData: false,
                    success: function (result) {
                        alert(result);
                    },
                    error: function (err) {
                        alert(err.statusText)
                    }
                });
                e.preventDefault();
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <table border="1">
                <caption>Upload File using Jquery AJAX in Asp.net</caption>
                <tr>
                    <td>Browse File:</td>
                    <td>
                        <asp:FileUpload ID="FileUpload1" runat="server" ClientIDMode="Static" />
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <fieldset>
                            <legend>Preview Upload</legend>
                            <asp:Image ID="Image1" runat="server" Src="#" Height="150px" Width="150px" AlternateText="No Image" ClientIDMode="Static" />
                        </fieldset>
                    </td>
                </tr>
                <tr>
                    <td colspan="2">
                        <asp:Button ID="btnUpload" runat="server" Text="Upload File" ClientIDMode="Static" />
                    </td>
                </tr>
            </table>
        </div>
    </form>
</body>
</html>

Step 7: - Preview look like this


















Step 8: - Right Click on Project Root folder => Add => New Items... => Expand Visual C# from Left Pane and Select Web => Select Generic Handler from Middle Pane => Type FileUploadHandler.ashx in Name box => Click Add

Step 9: - Copy Past following code in FileUploadHandler.ashx

using System.IO;
using System.Web;

namespace UploadFileJqueryAJAX
{
    /// <summary>
    /// File Upload Handler
    /// </summary>
    public class FileUploadHandler : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            if (context.Request.Files.Count > 0)
            {
                HttpFileCollection files = context.Request.Files;
                for (int i = 0; i < files.Count; i++)
                {
                    string filePath = context.Server.MapPath("~/UploadFiles/");
                    HttpPostedFile file = files[i];
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }
                    string fileName = filePath + file.FileName;
                    file.SaveAs(fileName);
                }
                context.Response.ContentType = "application/octet-stream";
                context.Response.Write("File Uploaded Successfully!");
            }
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

Step 10: - Browse file => Click Upload File

Note: - You will be received alert “File Uploaded Successfully!

Wednesday, 27 February 2019

How to make EMI Loan Amortization in SQL server


DECLARE
 @LoanAmount MONEY = '5000000.00'
,@ROI FLOAT = 11
,@Tenure NUMERIC(18,2) = 12
,@Period INT
,@Principal MONEY
,@Interest MONEY
,@EMI MONEY
,@AMT MONEY

SET @Period = 1
SET @ROI = (@ROI/100)/12

DECLARE @EMI_TABLE TABLE
(PERIOD INT,PAYDATE SMALLDATETIME,EMI MONEY,PRINCIPAL MONEY,INTEREST MONEY ,BALANCE MONEY)  

--EMI = [P x R x (1 + R)^N] / [(1 + R)^N - 1]
SELECT @EMI = ROUND((@LoanAmount * @ROI * POWER((1 + @ROI), @Tenure))  / (POWER((1 + @ROI), @Tenure) - 1),2)

WHILE @Period <= @Tenure
BEGIN
      --INTEREST = [P x R]
      SELECT @Interest = ROUND((@LoanAmount * @ROI),2)
      --PRINCIPAL = [EMI - INTEREST]
      SELECT @Principal = ROUND((@EMI - @Interest),2)
      --OUTSTANDING LOAN AMOUNT = [@LoanAmount - Principal]
      SELECT @LoanAmount = ROUND((@LoanAmount - @Principal),2)

      INSERT INTO @EMI_TABLE VALUES(@Period,DATEADD(MM,@Period,GETDATE()),@EMI,@Principal,@Interest,@LoanAmount)

      SET @Period = @Period + 1
END

SELECT * FROM @EMI_TABLE

Output





















Note:-


P - Loan Amount
R - Rate of Interest
N - Tenure/Loan Period

You will get different in paisa. Need to manage as per requirement.

Calculate Loan Amount from EMI in SQL server

DECLARE
 @LoanAmount MONEY = '7537500.00'
,@ROI FLOAT = 11
,@Tenure NUMERIC(18,2) = 12
,@EMI MONEY
,@AMT MONEY

SET @ROI = (@ROI/100)/12

--EMI = [P x R x (1 + R)^N] / [(1 + R)^N - 1]
SELECT @EMI = ROUND((@LoanAmount * @ROI * POWER((1 + @ROI), @Tenure))  / (POWER((1 + @ROI), @Tenure) - 1),3) 

SELECT @EMI

Output(EMI)
666176.751

First Query return the monthly installment of Loan Amount i.e. EMI.

--AMT = [EMI x (1 + R)^N - 1] / [R x (1 + R)^N]
SELECT @AMT = ROUND(@EMI * (POWER((1 + @ROI), @Tenure) - 1) / (@ROI * POWER((1 + @ROI), @Tenure)),2)

SELECT @AMT

Output
7537500.00

Second Query return the Loan Amount based on your monthly installment(EMI).

Note:-

P - Loan Amount
R - Rate of Interest
N - Tenure/Loan Period
EMI - Estimated Monthly Installment


Depend upon your requirement, you may change round off figure.

EMI Calculation formula in SQL server


DECLARE
 @LoanAmount MONEY = '7537500.00'
,@ROI FLOAT = 11
,@Tenure NUMERIC(18,2) = 12
,@EMI MONEY

SET @ROI = (@ROI/100)/12

--EMI = [P x R x (1 + R)^N] / [(1 + R)^N - 1]
SELECT @EMI = ROUND((@LoanAmount * @ROI * POWER((1 + @ROI), @Tenure))  / (POWER((1 + @ROI), @Tenure) - 1),3) 

SELECT @EMI

Output
666176.751

Note:-

P - Loan Amount
R - Rate of Interest
N - Tenure/Loan Period

Depend upon your requirement, you may change round off figure.

Saturday, 26 January 2019

Create custom required attribute to validate second property, if first property has a specific value in MVC


using System;
using System.ComponentModel.DataAnnotations;

namespace WebApplication1.Models
{
    public class Home
    {
        [Required]
        public string Prop1 { get; set; }

        [CustomRequired("Prop1", ErrorMessage = "The Prop2 field is required.")]
        public string Prop2 { get; set; }
    }

    public class CustomRequiredAttribute : ValidationAttribute
    {
        string prop1 = string.Empty;

        public CustomRequiredAttribute(string prop1)
        {
            this.prop1 = prop1;
        }

        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            object strProp1 = GetPropValue(validationContext.ObjectInstance, prop1);

            if (Convert.ToString(strProp1).ToLower() != "admin")
            {
                return new ValidationResult("");
            }
            return ValidationResult.Success;
        }

        public static object GetPropValue(object src, string propName)
        {
            return src.GetType().GetProperty(propName).GetValue(src, null);
        }
    }
}