public string AddNewClaim(ClsLibraryMitchell.claMitchellClaim.MitchellClaimType mitchellClaimType)
        {
            string result = "";
            result = repository.AddNewClaim(mitchellClaimType);

            if (mitchellClaimType.Vehicles != null)
            {
                if (mitchellClaimType.Vehicles.VehicleDetails.Length > 0)
                {
                    for (int i = 0; i < mitchellClaimType.Vehicles.VehicleDetails.Length; i++)
                    {
                        repository.AddNewVehicle(mitchellClaimType.Vehicles.VehicleDetails[i], mitchellClaimType.ClaimNumber);
                    }

                }
            }

            return result;
        }
        public string AddNewVehicle(ClsLibraryMitchell.claMitchellClaim.VehicleInfoType vehicle, string claimNumber)
        {
            string result = "";

            SqlConnection conn = new SqlConnection(this.connectionString);
            try
            {
                conn.Open();
                string sql = "SP_ADD_NEW_VEHICLE";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;

                SqlParameter p1 = new SqlParameter("@ClaimNumber", System.Data.SqlDbType.VarChar, 200);
                p1.Value = claimNumber;
                cmd.Parameters.Add(p1);

                SqlParameter p2 = new SqlParameter("@ModelYear", System.Data.SqlDbType.Int, 50);
                p2.Value = vehicle.ModelYear;
                cmd.Parameters.Add(p2);

                SqlParameter p3 = new SqlParameter("@MakeDescription", System.Data.SqlDbType.VarChar, 50);
                p3.Value = vehicle.MakeDescription;
                cmd.Parameters.Add(p3);

                SqlParameter p4 = new SqlParameter("@ModelDescription", System.Data.SqlDbType.VarChar, 50);
                p4.Value = vehicle.ModelDescription;
                cmd.Parameters.Add(p4);

                SqlParameter p5 = new SqlParameter("@EngineDescription", System.Data.SqlDbType.VarChar, 50);
                p5.Value = vehicle.EngineDescription;
                cmd.Parameters.Add(p5);

                SqlParameter p6 = new SqlParameter("@ExteriorColor", System.Data.SqlDbType.VarChar, 50);
                p6.Value = vehicle.ExteriorColor;
                cmd.Parameters.Add(p6);

                SqlParameter p7 = new SqlParameter("@Vin", System.Data.SqlDbType.VarChar, 50);
                p7.Value = vehicle.Vin;
                cmd.Parameters.Add(p7);

                SqlParameter p8 = new SqlParameter("@LicPlate", System.Data.SqlDbType.VarChar, 50);
                p8.Value = vehicle.LicPlate;
                cmd.Parameters.Add(p8);

                SqlParameter p9 = new SqlParameter("@LicPlateState", System.Data.SqlDbType.VarChar, 50);
                p9.Value = vehicle.LicPlateState;
                cmd.Parameters.Add(p9);

                SqlParameter p10 = new SqlParameter("@LicPlateExpDate", System.Data.SqlDbType.Date, 50);
                p10.Value = vehicle.LicPlateExpDate;
                cmd.Parameters.Add(p10);

                SqlParameter p11 = new SqlParameter("@DamageDescription", System.Data.SqlDbType.VarChar, 50);
                p11.Value = vehicle.DamageDescription;
                cmd.Parameters.Add(p11);

                SqlParameter p12 = new SqlParameter("@Mileage", System.Data.SqlDbType.Int, 50);
                p12.Value = vehicle.Mileage;
                cmd.Parameters.Add(p12);

                result = "" + cmd.ExecuteNonQuery();

            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            finally
            {
                conn.Close();
            }

            return result;
        }
        public string AddNewClaim(ClsLibraryMitchell.claMitchellClaim.MitchellClaimType mitchellClaimType)
        {
            string result = "";
            SqlConnection conn = new SqlConnection(this.connectionString);
            try
            {
                conn.Open();
                string sql = "SP_ADD_NEW_CLAIM";
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;

                SqlParameter p1 = new SqlParameter("@ClaimNumber", System.Data.SqlDbType.VarChar, 200);
                p1.Value = mitchellClaimType.ClaimNumber;
                cmd.Parameters.Add(p1);

                SqlParameter p2 = new SqlParameter("@ClaimantFirstName", System.Data.SqlDbType.VarChar, 50);
                p2.Value = mitchellClaimType.ClaimantFirstName;
                cmd.Parameters.Add(p2);

                SqlParameter p3 = new SqlParameter("@ClaimantLastName", System.Data.SqlDbType.VarChar, 50);
                p3.Value = mitchellClaimType.ClaimantLastName;
                cmd.Parameters.Add(p3);

                SqlParameter p4 = new SqlParameter("@Status", System.Data.SqlDbType.VarChar, 50);
                p4.Value = mitchellClaimType.Status;
                cmd.Parameters.Add(p4);

                SqlParameter p5 = new SqlParameter("@LossDate", System.Data.SqlDbType.DateTime, 50);
                p5.Value = mitchellClaimType.LossDate;
                cmd.Parameters.Add(p5);

                SqlParameter p6 = new SqlParameter("@CauseOfLoss", System.Data.SqlDbType.VarChar, 50);
                p6.Value = mitchellClaimType.LossInfo.CauseOfLoss;
                cmd.Parameters.Add(p6);

                SqlParameter p7 = new SqlParameter("@ReportedDate", System.Data.SqlDbType.DateTime, 50);
                p7.Value = mitchellClaimType.LossInfo.ReportedDate;
                cmd.Parameters.Add(p7);

                SqlParameter p8 = new SqlParameter("@LossDescription", System.Data.SqlDbType.VarChar, 50);
                p8.Value = mitchellClaimType.LossInfo.LossDescription;
                cmd.Parameters.Add(p8);

                SqlParameter p9 = new SqlParameter("@AssignedAdjusterID", System.Data.SqlDbType.BigInt, 50);
                p9.Value = mitchellClaimType.AssignedAdjusterID;
                cmd.Parameters.Add(p9);
                result = "" +  cmd.ExecuteNonQuery();

                if (mitchellClaimType.Vehicles != null)
                {

                }

            }
            catch (Exception ex)
            {
                result = ex.Message;
            }
            finally
            {
                conn.Close();
            }

            return result;
        }
        public bool UpdateClaim(ClsLibraryMitchell.claMitchellClaim.MitchellClaimType mct)
        {
            bool result = false;
            List<string> updateSQLList_tblMitchellClaim = new List<string>();
            List<string> updateSQLList_tblVehicle = new List<string>();
            System.Reflection.FieldInfo[] mctFields = mct.GetType().GetFields();
            for (int i = 0; i < mctFields.Length; i++)
            {
                if (this.HasValidValue(mctFields[i].GetValue(mct)) && mctFields[i].Name != "Vehicles" && mctFields[i].Name != "xmlns")
                {
                    updateSQLList_tblMitchellClaim.Add(mctFields[i].Name + "='" + mctFields[i].GetValue(mct).ToString() + "'");
                }

            }
            if (mct.Vehicles != null)
            {
                if (mct.Vehicles.VehicleDetails.Length > 0)
                {
                    for (int i = 0; i < mct.Vehicles.VehicleDetails.Length; i++)
                    {
                        Console.WriteLine("Vehicle :" + i);
                        System.Reflection.FieldInfo[] vehicleFields = mct.Vehicles.VehicleDetails[i].GetType().GetFields();
                        for (int j = 0; j < vehicleFields.Length; j++)
                        {
                            if (this.HasValidValue(vehicleFields[j].GetValue(mct.Vehicles.VehicleDetails[i])))
                            {
                                updateSQLList_tblVehicle.Add(vehicleFields[j].Name + "= '" + vehicleFields[j].GetValue(mct.Vehicles.VehicleDetails[i]) + "'");
                            }
                        }
                        // Update DB
                        if (updateSQLList_tblVehicle.Count > 0)
                        {
                            string sql = " update tblVehicles set ";
                            for (int k = 0; k < updateSQLList_tblVehicle.Count - 1; k++)
                            {
                                sql += updateSQLList_tblVehicle[k] + " , ";
                            }
                            sql += updateSQLList_tblVehicle[updateSQLList_tblVehicle.Count - 1];
                            sql += " where Vin ='" + mct.Vehicles.VehicleDetails[i].Vin + "'";
                            repository.ExecuteNonQuery(sql);
                        }

                    }

                }
            }

            if (updateSQLList_tblMitchellClaim.Count > 0)
            {
                string sql = " update tblMitchellClaim set ";
                for (int i = 0; i < updateSQLList_tblMitchellClaim.Count-1; i++)
                {
                    sql += updateSQLList_tblMitchellClaim[i] + " , ";
                }
                sql += updateSQLList_tblMitchellClaim[updateSQLList_tblMitchellClaim.Count - 1];
                sql += " where ClaimNumber ='" + mct.ClaimNumber + "'";
                repository.ExecuteNonQuery(sql);
            }

            return result;
        }