public ActionResult Post(TourPlan tour)
        {
            try
            {
                string isSaved = new TourPlanManager().TourPlanManagement(tour);

                if (isSaved.Trim() == "1")
                {
                    return(Ok("1"));
                }
                else
                {
                    return(Ok(isSaved.Trim()));
                }
            }
            catch (Exception ex)
            {
                return(Ok(ex.ToString()));
            }
        }
        public string TourPlanManagement(TourPlan tourPlan)
        {
            SqlTransaction transaction;
            string         connString = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
                                        .AddJsonFile("appsettings.json", false)
                                        .Build().GetConnectionString("DevConnection").ToString();
            SqlConnection sqlConnection = new SqlConnection(connString);

            sqlConnection.Open();
            transaction = sqlConnection.BeginTransaction();
            SqlCommand cmd = new SqlCommand("API_TourPlanManagement", sqlConnection, transaction);

            cmd.CommandType = CommandType.StoredProcedure;
            try
            {
                SqlParameter TourPlanID = cmd.Parameters.Add("@TourPlanID", SqlDbType.BigInt);
                TourPlanID.Direction = ParameterDirection.Input;
                TourPlanID.Value     = tourPlan.TourPlanID;

                SqlParameter SFID = cmd.Parameters.Add("@SFID", SqlDbType.BigInt);
                SFID.Direction = ParameterDirection.Input;
                SFID.Value     = tourPlan.SFID;

                SqlParameter PlanDate = cmd.Parameters.Add("@PlanDate", SqlDbType.DateTime);
                PlanDate.Direction = ParameterDirection.Input;
                PlanDate.Value     = (string.IsNullOrEmpty(tourPlan.TourDate) ? DateTime.Now : DateTime.ParseExact(tourPlan.TourDate, "MM/dd/yyyy", null));

                SqlParameter Condition = cmd.Parameters.Add("@Condition", SqlDbType.VarChar, 10);
                Condition.Direction = ParameterDirection.Input;
                Condition.Value     = tourPlan.Condition;

                SqlParameter Flag = cmd.Parameters.Add("@Flag", SqlDbType.VarChar, 10);
                Flag.Direction = ParameterDirection.Output;

                cmd.ExecuteNonQuery();
                if (cmd.Parameters["@Flag"].Value.ToString().Trim() == "Er")
                {
                    transaction.Rollback();
                    return("0");
                }

                string tourPlanid = cmd.Parameters["@Flag"].Value.ToString().Trim();

                foreach (var task in tourPlan.Tours)
                {
                    if (!TourTaskManagement((TourTask)task, tourPlanid, sqlConnection, transaction))
                    {
                        transaction.Rollback();
                        return("0");
                    }
                }

                transaction.Commit();
            }
            catch (Exception ex)
            {
                transaction.Rollback();
                return(ex.ToString());
            }
            finally
            {
                cmd.Dispose();
                sqlConnection.Close();
                sqlConnection.Dispose();
                tourPlan = null;
            }
            return("1");
        }
 public string TourPlanManagement(TourPlan tourPlan)
 {
     return(tourPlanGateway.TourPlanManagement(tourPlan));
 }