/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        static public GlobalVars.ResultGeneric UpdateCustomer(GlobalVars.Customer customer)
        {
            GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric()
            {
                ReturnCode     = 0,
                Message        = "",
                RecordsCount   = 0,
                HttpStatusCode = ""
            };
            try
            {
                logger.Trace("Entering into UpdateCustomer Method ...");

                using (ScanningDBContext DB = new ScanningDBContext())
                {
                    // Customer Names must be unique in the Database. The Name could be change but it must be unique
                    Customers Matching_Result = DB.Customers.FirstOrDefault(x => x.CustomerName == customer.CustomerName);
                    if (Matching_Result == null)
                    {
                        // Means --> this is a new name
                        Matching_Result = DB.Customers.FirstOrDefault(x => x.CustomerId == customer.CustomerID);
                        if (Matching_Result != null)
                        {
                            Matching_Result.CustomerName = customer.CustomerName;
                            DB.SaveChanges();
                            result.Message = "UpdateCustomer transaction completed successfully. One Record Updated.";
                        }
                        else
                        {
                            // Means --> cannot update a Customer that does not exist
                            result.ReturnCode = -1;
                            result.Message    = "Customer " + customer.CustomerName + " does not exist. UpdateCustomer transaction ignore.";
                        }
                    }
                    else
                    {
                        // Means --> the name already exist
                        result.ReturnCode = -1;
                        result.Message    = "Customer " + customer.CustomerName + " already exist. UpdateCustomer transaction ignore.";
                    }
                }
                logger.Debug(result.Message);
            }
            catch (Exception e)
            {
                logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException);
                result.ReturnCode = -2;
                result.Message    = e.Message;
                var baseException = e.GetBaseException();
                result.Exception = baseException.ToString();
            }
            logger.Trace("Leaving UpdateCustomer Method ...");
            return(result);
        }
        /// <summary>
        /// Get Customer by Name
        /// </summary>
        /// <returns></returns>
        static public GlobalVars.ResultCustomers GetCustomerByName(string customerName)
        {
            List <GlobalVars.Customer> customers = new List <GlobalVars.Customer>();

            GlobalVars.ResultCustomers resultCustomers = new GlobalVars.ResultCustomers()
            {
                ReturnCode     = 0,
                Message        = "",
                ReturnValue    = customers,
                RecordsCount   = 0,
                HttpStatusCode = ""
            };
            try
            {
                logger.Trace("Entering into GetCustomerByName Method ...");
                using (ScanningDBContext DB = new ScanningDBContext())
                {
                    var results = DB.Customers.Where(x => x.CustomerName == customerName);
                    resultCustomers.RecordsCount = results.Count();
                    if (results.Count() >= 1)
                    {
                        foreach (var x in results)
                        {
                            GlobalVars.Customer customer = new GlobalVars.Customer()
                            {
                                CustomerID   = x.CustomerId,
                                CustomerName = (x.CustomerName ?? "").Trim()
                            };
                            customers.Add(customer);
                        }
                    }
                }
                resultCustomers.ReturnValue = customers;
                resultCustomers.Message     = "GetCustomerByName transaction completed successfully. Number of records found: " + resultCustomers.RecordsCount;
                logger.Debug(resultCustomers.Message);
            }
            catch (Exception e)
            {
                logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException);
                resultCustomers.ReturnCode = -2;
                resultCustomers.Message    = e.Message;
                var baseException = e.GetBaseException();
                resultCustomers.Exception = baseException.ToString();
                //return resultHosts;
            }
            logger.Trace("Leaving GetCustomerByName Method ...");
            return(resultCustomers);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        static public GlobalVars.ResultGeneric NewCustomer(GlobalVars.Customer customer)
        {
            GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric()
            {
                ReturnCode     = 0,
                Message        = "",
                RecordsCount   = 0,
                HttpStatusCode = ""
            };
            try
            {
                logger.Trace("Entering into NewCustomer Method ...");

                // Check if Customer Exist
                result = ExistCustomerName(customer.CustomerName);
                if (result.RecordsCount == 0)
                {
                    // Create new Customer
                    using (ScanningDBContext DB = new ScanningDBContext())
                    {
                        Customers New_Record = new Customers();
                        New_Record.CustomerName = customer.CustomerName;

                        DB.Customers.Add(New_Record);
                        DB.SaveChanges();
                    }
                    result.Message = "NewCustomer transaction completed successfully. One Record added.";
                }
                else
                {
                    result.ReturnCode = -1;
                    result.Message    = "Customer " + customer.CustomerName + " already exist. NewCustomer transaction ignore.";
                }

                logger.Debug(result.Message);
            }
            catch (Exception e)
            {
                logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException);
                result.ReturnCode = -2;
                result.Message    = e.Message;
                var baseException = e.GetBaseException();
                result.Exception = baseException.ToString();
            }
            logger.Trace("Leaving NewCustomer Method ...");
            return(result);
        }
Пример #4
0
        public ActionResult UpdateCustomer([FromBody] string customerJS)
        {
            var watch = System.Diagnostics.Stopwatch.StartNew();

            GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric()
            {
                Message    = "",
                ReturnCode = 0,
                //ReturnValue = ""
            };
            try
            {
                if (customerJS == null)
                {
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    result.ReturnCode   = -1;
                    result.Message      = "Missing argument customerJS";
                    logger.Warn("UpdateCustomer API Request ends with an Error.");
                    logger.Warn(result.Message);
                }
                else
                {
                    GlobalVars.Customer customer = JsonConvert.DeserializeObject <GlobalVars.Customer>(customerJS);
                    logger.Info("UpdateCustomer API Request.");
                    if (!string.IsNullOrEmpty(customer.CustomerName))
                    {
                        logger.Debug("Parameter:" + JsonConvert.SerializeObject(customer, Formatting.Indented));

                        result = SQLFunctionsCustomers.UpdateCustomer(customer);
                        switch (result.ReturnCode)
                        {
                        case 0:
                            logger.Info("UpdateCustomer API Request was executed Successfully.");
                            Response.StatusCode = (int)HttpStatusCode.OK;
                            break;

                        case -1:
                            logger.Info("UpdateCustomer API Request ends with a warning.");
                            Response.StatusCode = (int)HttpStatusCode.OK;
                            break;

                        case -2:
                            Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                            logger.Fatal("UpdateCustomer API Request ends with a Fatal Error.");
                            logger.Debug("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented));
                            Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                            break;
                        }
                    }
                    else
                    {
                        Response.StatusCode = (int)HttpStatusCode.BadRequest;
                        result.ReturnCode   = -1;
                        result.Message      = "CustomerName value is not valid.";
                        logger.Warn("UpdateCustomer API Request ends with an Error.");
                        logger.Warn(result.Message);
                    }
                }
            }
            catch (Exception e)
            {
                logger.Fatal("UpdateCustomer API Request ends with a Fatal Error.");
                result.ReturnCode = -2;
                result.Message    = e.Message;
                var baseException = e.GetBaseException();
                result.Exception = baseException.ToString();
                logger.Fatal("Returned value:" + JsonConvert.SerializeObject(result, Formatting.Indented));
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            }
            Response.ContentType = "application/json";
            watch.Stop();
            var elapsedMs = watch.ElapsedMilliseconds;

            elapsedMs             = elapsedMs / 1000;
            result.ElapsedTime    = elapsedMs.ToString();
            result.HttpStatusCode = Response.StatusCode.ToString();
            var messaje = JsonConvert.SerializeObject(result, Formatting.Indented);

            logger.Info("Leaving UpdateCustomer API");
            //return Json(messaje);
            return(Content(messaje));
        }