private static Models.ProcessFiles.Response.PipelineStatus CheckPipelineStatus()
        {
            try
            {
                var context = new Magnaflow_WebEntities();
                Models.ProcessFiles.Response.PipelineStatus pipelineStatus = new Models.ProcessFiles.Response.PipelineStatus();
                var activeFileBatch = context.EPM_ProcessFilesBatch.Where(x => x.Active == true).FirstOrDefault();

                if (activeFileBatch == null)
                {
                    pipelineStatus.Active = false;
                }
                else
                {
                    pipelineStatus.Active      = true;
                    pipelineStatus.ActiveStage = activeFileBatch.StageId;
                    pipelineStatus.BatchId     = activeFileBatch.BatchId;
                }

                return(pipelineStatus);
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound)
                {
                    ReasonPhrase = "> from CheckPipelineStatus: " + ex.Message
                });
            }
        }
        //[Authorize(Roles = "DataTeam_APPS_RW, APP_ADMINS")]
        public ActionResult Delete(ExtPartMapping entry)
        {
            var context  = new Magnaflow_WebEntities();
            var settings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            Models.Response.Response response = null;

            /*
             * Do checks here making sure input is as expectied
             */

            try
            {
                var deleteEntry = context.ExtPartMappings.Where(x => x.Id == entry.Id).FirstOrDefault();

                if (deleteEntry != null)
                {
                    context.ExtPartMappings.Remove(deleteEntry);
                    context.SaveChanges();
                    response = new Models.Response.Response()
                    {
                        Success            = true,
                        JSON_RESPONSE_DATA = null // JsonConvert.SerializeObject(commissionDataResponseObject)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                    };
                    #region log activity
                    var logDelete = new ExtPartMappingToolStagingActivity()
                    {
                        Time       = DateTime.UtcNow,
                        UserId     = User.Identity.Name,
                        ActionType = Types.ActionType.DELETE
                    };
                    #endregion
                    context.ExtPartMappingToolStagingActivities.Add(logDelete);
                    context.SaveChanges();
                }
                else
                {
                    response = new Models.Response.Response()
                    {
                        Success            = false,
                        JSON_RESPONSE_DATA = null, // JsonConvert.SerializeObject(commissionDataResponseObject)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                        Message            = "Data submitted to delete does not exist."
                    };
                }
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }catch (Exception ex)
            {
                throw;//  new HttpException(404, "Internal error");
            }

            //return JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings); //Returns students list as JSON
        }
示例#3
0
        public static bool InitiateFiles(List <String> acesFileNames, List <String> piesFileNames, bool isStaging)
        {
            try
            {
                var context           = new Magnaflow_WebEntities();
                var processFilesBatch = new EPM_ProcessFilesBatch()
                {
                    StageId = isStaging? Models.Types.ProcessFilesStages.StagingInit: Models.Types.ProcessFilesStages.ProductionInit,
                    Active  = true
                };
                context.EPM_ProcessFilesBatch.Add(processFilesBatch);
                context.SaveChanges();

                foreach (var fileName in acesFileNames)
                {
                    if (!String.IsNullOrWhiteSpace(fileName))
                    {
                        var acesFile = new EPM_ProcessFilesDetail()
                        {
                            BatchId  = processFilesBatch.BatchId,
                            FileName = fileName
                        };
                        context.EPM_ProcessFilesDetail.Add(acesFile);
                    }
                }

                foreach (var fileName in piesFileNames)
                {
                    if (!String.IsNullOrWhiteSpace(fileName))
                    {
                        var piesFile = new EPM_ProcessFilesDetail()
                        {
                            BatchId  = processFilesBatch.BatchId,
                            FileName = fileName
                        };
                        context.EPM_ProcessFilesDetail.Add(piesFile);
                    }
                }
                context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
示例#4
0
        public IHttpActionResult CompleteContents()
        {
            try
            {
                var context = new Magnaflow_WebEntities();
                var stagingFilesContents = new Models.ProcessFiles.Response.StagingDirectoryContent();
                Models.ProcessFiles.Response.PipelineStatus pipelineStatus = CheckPipelineStatus();
                AssertStep(pipelineStatus, Models.Types.ProcessFilesStages.ProductionComplete);
                NetworkCredential NCredentials = GetNetworkCredential();
                using (new NetworkConnection(GetFileStoreHost(), NCredentials))
                {
                    //The Host Directroy
                    DirectoryInfo stagingDirectoryInfo = Directory.CreateDirectory(GetFileStoreHost());

                    //Individual Aces and Pies Directory
                    DirectoryInfo directoryComplete = stagingDirectoryInfo.CreateSubdirectory(_Complete);

                    //find files that are currently active
                    var namesOfActiveFiles = context.EPM_ProcessFilesDetail.Where(x => x.BatchId == pipelineStatus.BatchId).Select(x => x.FileName).ToList();


                    //Get Name Files/Contents.
                    var matchingNamesOfActiveFiles = directoryComplete.EnumerateFiles().Where(x => namesOfActiveFiles.Contains(x.Name)).Select(x => x.Name).ToList();
                    //var fileNamesPies = directoryPies.EnumerateFiles().Select(x => x.Name).ToList();

                    //stagingFilesContents.FileNamesAces = fileNamesAces;
                    //stagingFilesContents.FileNamesPies = fileNamesPies;
                    stagingFilesContents.FileNamesComplete = matchingNamesOfActiveFiles;

                    //and before closing, release the pipeline
                    Helpers.ProcessFilePipelineTracker.ClosePipeline(pipelineStatus.BatchId);

                    return(Ok(stagingFilesContents));
                }
            }
            catch (HttpResponseException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
示例#5
0
        public static bool ClosePipeline(int batchId)
        {
            try
            {
                var context         = new Magnaflow_WebEntities();
                var activeFileBatch = context.EPM_ProcessFilesBatch.Where(x => x.BatchId == batchId).FirstOrDefault();

                if (activeFileBatch == null)
                {
                    return(false);
                }
                activeFileBatch.Active = false;
                context.SaveChanges();
            }
            catch (Exception ex)
            {
            }
            return(true);
        }
示例#6
0
        public static bool ProductionInit(int batchId)
        {
            try
            {
                var context         = new Magnaflow_WebEntities();
                var activeFileBatch = context.EPM_ProcessFilesBatch.Where(x => x.BatchId == batchId).FirstOrDefault();

                if (activeFileBatch == null)
                {
                    return(false);
                }
                activeFileBatch.StageId = Models.Types.ProcessFilesStages.ProductionInit;
                context.SaveChanges();
            }
            catch (Exception ex)
            {
            }
            return(true);
        }
示例#7
0
        public ActionResult Commit(List <ExtPartMappingToolUploadStaging> stagingList)
        {
            var context = new Magnaflow_WebEntities();

            Models.Response.Response response = null;
            try
            {
                foreach (var stagingRecord in stagingList)
                {
                    context.ExtPartMappings.Add(new ExtPartMapping()
                    {
                        OldPartId = stagingRecord.OldPartId,
                        NewPartId = stagingRecord.NewPartId
                    });
                }
                var logBeginUpload = new ExtPartMappingToolStagingActivity()
                {
                    Time       = DateTime.UtcNow,
                    UserId     = User.Identity.Name,
                    ActionType = Types.ActionType.COMMIT_UPLOAD
                };
                context.ExtPartMappingToolStagingActivities.Add(logBeginUpload);

                context.SaveChanges();

                response = new Models.Response.Response()
                {
                    Success            = true,
                    JSON_RESPONSE_DATA = null// JsonConvert.SerializeObject(stagingList)
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                response = new Models.Response.Response()
                {
                    Success            = false,
                    JSON_RESPONSE_DATA = JsonConvert.SerializeObject("Internal_Error")
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }
        }
示例#8
0
        private static Models.ProcessFiles.Response.PipelineStatus CheckPipelineStatus()
        {
            var context = new Magnaflow_WebEntities();

            Models.ProcessFiles.Response.PipelineStatus pipelineStatus = new Models.ProcessFiles.Response.PipelineStatus();
            var activeFileBatch = context.EPM_ProcessFilesBatch.Where(x => x.Active == true).FirstOrDefault();

            if (activeFileBatch == null)
            {
                pipelineStatus.Active = false;
            }
            else
            {
                pipelineStatus.Active      = true;
                pipelineStatus.ActiveStage = activeFileBatch.StageId;
                pipelineStatus.BatchId     = activeFileBatch.BatchId;
            }

            return(pipelineStatus);
        }
        //[Authorize(Roles = "DataTeam_APPS_RW, DataTeam_APPS_RO")]
        public ActionResult ExtPartMappings()
        {
            var context  = new Magnaflow_WebEntities();
            var settings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            var extPartMappings = context.ExtPartMappings.ToList();

            Models.Response.Response response = null;

            if (extPartMappings == null || extPartMappings.Count() == 0)
            {
                //Used to make property name as camel case

                /*Microsoft.Data.OData.ODataError error = new Microsoft.Data.OData.ODataError()
                 * {
                 *  ErrorCode = "404",
                 *  Message = "Customer Not Fount"
                 * }
                 * return JsonConvert.SerializeObject(error, Formatting.None, settings);*///Returns students list as JSON
                response = new Models.Response.Response()
                {
                    Success            = false,
                    JSON_RESPONSE_DATA = null,
                    Message            = "Data set is empty"
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }

            response = new Models.Response.Response()
            {
                Success            = true,
                JSON_RESPONSE_DATA = JsonConvert.SerializeObject(extPartMappings)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
            };
            return(this.Json(response, JsonRequestBehavior.AllowGet));
            //return JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings); //Returns students list as JSON
        }
        public ActionResult Search(string oldPartId = null, string newPartId = null)
        {
            var context  = new Magnaflow_WebEntities();
            var settings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            List <ExtPartMapping> parts = null;

            Models.Response.Response response = null;

            var oldPID = String.IsNullOrWhiteSpace(oldPartId);
            var newPID = String.IsNullOrWhiteSpace(newPartId);

            try
            {
                if (!oldPID && !newPID)
                {
                    parts = context.ExtPartMappings.Where(x => x.OldPartId == oldPartId.Trim() && x.NewPartId == newPartId.Trim()).ToList();
                }
                else if (!oldPID)
                {
                    parts = context.ExtPartMappings.Where(x => x.OldPartId == oldPartId.Trim()).ToList();
                }
                else if (!newPID)
                {
                    parts = context.ExtPartMappings.Where(x => x.NewPartId == newPartId.Trim()).ToList();
                }
                else
                {
                    response = new Models.Response.Response()
                    {
                        Success            = false,
                        JSON_RESPONSE_DATA = null,
                        Message            = "Try again. This time, try searching for a part_Id"
                    };
                    return(this.Json(response, JsonRequestBehavior.AllowGet));
                }

                if (parts.Count() == 0)
                {
                    response = new Models.Response.Response()
                    {
                        Success            = false,
                        JSON_RESPONSE_DATA = null,
                        Message            = "Search Yielded no results."
                    };
                    return(this.Json(response, JsonRequestBehavior.AllowGet));
                }


                response = new Models.Response.Response()
                {
                    Success            = true,
                    JSON_RESPONSE_DATA = JsonConvert.SerializeObject(parts)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }catch (Exception ex)
            {
                throw;
            }
            //return JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings); //Returns students list as JSON
        }
        //[Authorize(Roles = "DataTeam_APPS_RW, APP_ADMINS")]
        public ActionResult Save(Models.Request.NestedViews.Save saveModel)
        {
            var context  = new Magnaflow_WebEntities();
            var settings = new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            Models.Response.Response response     = null;
            ExtPartMapping           extPartEntry = null;

            //Models.CommissionData commissionDataResponseObject = null;

            /*
             * get rid of non alphanumeric and spaces [^a-zA-Z0-9]
             */



            if (saveModel.Id != null)
            {
                extPartEntry = context.ExtPartMappings.Where(x => x.Id == saveModel.Id).FirstOrDefault();
                if (extPartEntry == null)
                {
                    response = new Models.Response.Response()
                    {
                        Success            = false,
                        JSON_RESPONSE_DATA = null, //JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                        Message            = "Data to edit does not exist."
                    };
                    return(this.Json(response, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    extPartEntry.OldPartId = saveModel.OldPartId;
                    extPartEntry.NewPartId = saveModel.NewPartId;
                    context.SaveChanges();
                    #region log save
                    var logUpdate = new ExtPartMappingToolStagingActivity()
                    {
                        Time       = DateTime.UtcNow,
                        UserId     = User.Identity.Name,
                        ActionType = Types.ActionType.UPDATE
                    };
                    context.ExtPartMappingToolStagingActivities.Add(logUpdate);
                    context.SaveChanges();
                    #endregion

                    response = new Models.Response.Response()
                    {
                        Success            = true,
                        JSON_RESPONSE_DATA = JsonConvert.SerializeObject(extPartEntry)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                    };
                    return(this.Json(response, JsonRequestBehavior.AllowGet));
                }
            }
            else //if it's null we're adding
            {
                extPartEntry = new ExtPartMapping()
                {
                    OldPartId = saveModel.OldPartId,
                    NewPartId = saveModel.NewPartId
                };

                context.ExtPartMappings.Add(extPartEntry);
                context.SaveChanges();

                /* Here needs to be an updatae model of the extpartmapping added object */
                #region log save
                var logSave = new ExtPartMappingToolStagingActivity()
                {
                    Time       = DateTime.UtcNow,
                    UserId     = User.Identity.Name,
                    ActionType = Types.ActionType.SAVE
                };
                context.ExtPartMappingToolStagingActivities.Add(logSave);
                context.SaveChanges();
                #endregion

                response = new Models.Response.Response()
                {
                    Success            = true,
                    JSON_RESPONSE_DATA = JsonConvert.SerializeObject(extPartEntry)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }


            //return JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings); //Returns students list as JSON
        }
示例#12
0
        public ActionResult Upload(HttpPostedFileBase file)
        {
            var context             = new Magnaflow_WebEntities();
            var instantiateLogEntry = true;
            int?stagingActivityId   = null;

            Models.Response.Response response = null;
            List <ExtPartMappingToolUploadStaging> uploadStagingList = new List <ExtPartMappingToolUploadStaging>();

            try
            {
                using (var package = new ExcelPackage(file.InputStream))
                {
                    // get the first worksheet in the workbook
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                    for (int row = 1; worksheet.Cells[row, 1].Value != null; row++)
                    {
                        var oldPartId = worksheet.Cells[row, 1].Value;
                        var newPartId = worksheet.Cells[row, 2].Value;
                        #region log begin upload
                        if (instantiateLogEntry)
                        {
                            var logBeginUpload = new ExtPartMappingToolStagingActivity()
                            {
                                Time       = DateTime.UtcNow,
                                UserId     = User.Identity.Name,
                                ActionType = Types.ActionType.BEGIN_UPLOAD
                            };

                            context.ExtPartMappingToolStagingActivities.Add(logBeginUpload);
                            context.SaveChanges();
                            stagingActivityId   = logBeginUpload.StagingActivityId;
                            instantiateLogEntry = false;
                        }
                        #endregion

                        /* add to upload staging */
                        uploadStagingList.Add(new ExtPartMappingToolUploadStaging()
                        {
                            StagingActiviyId = (int)stagingActivityId,
                            OldPartId        = oldPartId.ToString(),
                            NewPartId        = newPartId.ToString()
                        });
                    }
                    context.ExtPartMappingToolUploadStagings.AddRange(uploadStagingList);

                    /*foreach(var record in uploadStagingList)
                     * {
                     *  context.ExtPartMappingToolUploadStagings.Add(record);
                     * }*/

                    context.SaveChanges();
                } // the using

                response = new Models.Response.Response()
                {
                    Success            = true,
                    JSON_RESPONSE_DATA = JsonConvert.SerializeObject(uploadStagingList)
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                response = new Models.Response.Response()
                {
                    Success            = false,
                    JSON_RESPONSE_DATA = JsonConvert.SerializeObject("Internal_Error")
                };
                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }
        }