public async Task <IHttpActionResult> DeletePrismCol(string id)
        {
            CRUD_Data dataResult = new CRUD_Data();

            try
            {
                PrismCol prismCol = await db.PrismColss.FindAsync(id);

                if (prismCol == null)
                {
                    dataResult.StatusDetails = "Not found " + id + " in system.";
                    return(BadRequest(dataResult.StatusDetails));
                }

                db.PrismColss.Remove(prismCol);
                await db.SaveChangesAsync();

                dataResult.StatusCode = "200";

                return(Ok(dataResult));
            }
            catch (Exception ex)
            {
                Log.Info(ex);
                dataResult.StatusDetails = "We found the problem in 'Delete CLBS process'(DateTime: " + DateTime.Now + " ). Please contact admin.";
                return(BadRequest(dataResult.StatusDetails));
            }
        }
        public async Task <IHttpActionResult> DeleteSTANDARDData(string id)
        {
            CRUD_Data     dataResult = new CRUD_Data();
            List <string> prob       = new List <string>();

            try
            {
                STANDARDData sTANDARDData = await db.STANDARDDatas.FindAsync(id);

                if (sTANDARDData == null)
                {
                    dataResult.StatusDetails = "Not found " + id + " in system.";
                    return(BadRequest(dataResult.StatusDetails));
                }

                db.STANDARDDatas.Remove(sTANDARDData);
                await db.SaveChangesAsync();

                dataResult.StatusCode = "200";

                return(Ok(dataResult));
            }
            catch (Exception ex)
            {
                Log.Info(ex);
                dataResult.StatusDetails = "We found the problem in 'Delete Stan process'(DateTime: " + DateTime.Now + " ). Please contact admin.";
                return(BadRequest(dataResult.StatusDetails));
            }
        }
        public async Task <IHttpActionResult> PostPrismCol(PrismCol prismCol)
        {
            CRUD_Data dataResult = new CRUD_Data();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                if (PrismColExists(prismCol.cceCode))
                {
                    return(Ok(prismCol.cceCode));
                }
                else
                {
                    db.PrismColss.Add(prismCol);
                    await db.SaveChangesAsync();

                    dataResult.StatusCode = "200";
                }
            }
            catch (DbEntityValidationException e)
            {
                var newException = new FormattedDbEntityValidationException(e);
                Log.Info(newException);
                dataResult.StatusDetails = "We found the problem in 'Add CLBS process'( " + prismCol.cceCode + ") (DateTime: " + DateTime.Now + " ). Please contact admin.";
                return(BadRequest(dataResult.StatusDetails));
            }

            return(Ok(dataResult.StatusCode));
        }
        public CRUD_Data GetPrismCols()
        {
            CRUD_Data dataResult = new CRUD_Data();

            try
            {
                var filename = "PrismCollection_Databackup_" + DateTime.Now.ToString("yyyMMdd") + ".xml";
                var results  = new List <vPrismCol>();
                var data     = from a in db.PrismColss
                               select new vPrismCol
                {
                    cceCode = a.cceCode,
                    slopeRx = a.slopeRx,
                    slopeRy = a.slopeRy
                };
                results.AddRange(data);

                if (results != null)
                {
                    var part = this.GenerateXML(results, filename);
                    dataResult.StatusCode = "404";
                    dataResult.foldername = part;
                }
                else
                {
                    dataResult.StatusCode    = "404";
                    dataResult.StatusDetails = "Not found Prism Collection data in system";
                }
            }
            catch (Exception ex)
            {
                Log.Info(ex);
                dataResult.StatusCode    = "409";
                dataResult.StatusDetails = "We found the problem in 'GetPrismCollection data backup process' (DateTime: " + DateTime.Now + " ). Please contact admin.";
                return(dataResult);
            }


            return(dataResult);
        }
        public async Task <IHttpActionResult> PostUploadSTDFile()
        {
            CRUD_Data           dataResult = new CRUD_Data();
            HttpContext         context    = HttpContext.Current;
            List <STANDARDData> STD_list   = new List <STANDARDData>();

            if (context.Request.Files.Count > 0)
            {
                try
                {
                    for (int i = 0; i < context.Request.Files.Count; i++)
                    {
                        HttpPostedFile httpPostedFile = context.Request.Files[i];
                        Stream         stream         = httpPostedFile.InputStream;
                        if (httpPostedFile.FileName.EndsWith(".xlsx"))
                        {
                            var list = ConvertfileToSTD(httpPostedFile);
                            STD_list.AddRange(list);
                        }
                        else
                        {
                            dataResult.StatusCode    = "404";
                            dataResult.StatusDetails = "Not found type of file. Please use Excel file(.xlxs) only.";
                            return(Ok(dataResult)); // send Error type of file is incorrect.
                        }

                        foreach (var STD in STD_list)
                        {
                            IHttpActionResult actionResult = await PostSTANDARDData(STD);

                            if (actionResult is OkNegotiatedContentResult <string> contentResult && contentResult.Content != "200")
                            {
                                dataResult.Dup_data.Add(contentResult.Content);
                            }
                            if (actionResult is BadRequestResult)
                            {
                                dataResult.StatusCode    = "400";
                                dataResult.StatusDetails = "We found problem in add standard data process.";
                            }
                        }
                    }
                    if (dataResult.Dup_data.Count == 0 && dataResult.StatusCode != "400")
                    {
                        dataResult.StatusCode = "200";
                    }
                    else if (dataResult.Dup_data.Count > 0 && dataResult.StatusCode != "400")
                    {
                        var part     = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Result/STDResult.txt");
                        var dup_data = string.Join(", ", dataResult.Dup_data);
                        ResultReport(part, dup_data);
                        dataResult.foldername = part;
                        dataResult.StatusCode = "201";

                        dataResult.StatusDetails = "We found duplicate data.";
                    }
                    else if (dataResult.Dup_data.Count == 0 && dataResult.StatusCode == "400")
                    {
                        dataResult.StatusCode    = "400";
                        dataResult.StatusDetails = "We found problem in add standard data process.";
                    }
                    else if (dataResult.Dup_data.Count > 0 && dataResult.StatusCode == "400")
                    {
                        var part     = System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Result/STDResult.txt");
                        var dup_data = string.Join(", ", dataResult.Dup_data);
                        ResultReport(part, dup_data);
                        dataResult.foldername    = part;
                        dataResult.StatusCode    = "420";
                        dataResult.StatusDetails = "We found duplicate data and problem in add standard data process.";
                    }

                    return(Ok(dataResult));
                }
                catch (Exception ex)
                {
                    Log.Info(ex);
                    dataResult.StatusDetails = "We found the problem in 'Add Standard data file process'(DateTime: " + DateTime.Now + " ). Please contact admin.";
                    return(BadRequest(dataResult.StatusDetails));
                }
            }
            else
            {
                return(NotFound());
            }
        }