Exemple #1
0
        public ActionResult Delete(ExtPartMapping entry)
        {
            var context  = new Magnaflow_WebEntitiesProd();
            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
        }
        public ActionResult LogOff()
        {
            FormsAuthentication.SignOut();

            Models.Response.Response response = new Models.Response.Response()
            {
                Success            = true,
                JSON_RESPONSE_DATA = null // JsonConvert.SerializeObject(commissionDataResponseObject)// JsonConvert.SerializeObject(commissionDataResponseObject, Formatting.None, settings)
            };
            return(this.Json(response, JsonRequestBehavior.AllowGet));
        }
        public IActionResult Post([FromBody] Models.Request.Request request)
        {
            // Begin building Response
            var response = new Models.Response.Response {
                RequestId = request.RequestId
            };

            // Smart Home Intents use a single object in inputs, containing the intent value, and a payload object with automation-specific objects.
            if (request.Inputs == null || request.Inputs.Count != 1)
            {
                response.Payload = new Models.Response.ErrorResponsePayload {
                    ErrorCode = "protocolError"
                };
                return(BadRequest(response));
            }

            var input = request.Inputs[0];

            switch (input)
            {
            case Models.Request.SyncIntent syncIntent:
                response.Payload = _syncIntentHandler.Handle(syncIntent);
                return(Ok(response));

            case Models.Request.QueryIntent queryIntent:
                response.Payload = _queryIntentHandler.Handle(queryIntent);
                return(Ok(response));

            case Models.Request.ExecuteIntent executeIntent:
                response.Payload = _executeIntentHandler.Handle(executeIntent);
                return(Ok(response));

            case Models.Request.DisconnectIntent disconnectIntent:
                _disconnectIntentHandler.Handle(disconnectIntent);
                return(Ok());
            }

            // No valid intents found, return error
            response.Payload = new Models.Response.ErrorResponsePayload {
                ErrorCode = "protocolError"
            };
            return(BadRequest(response));
        }
Exemple #4
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));
            }
        }
        //[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
        }
        public ActionResult Login(LoginModel model, string returnUrl)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(model));
            }
            Models.Response.Response response = null;

            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                //connect to directory and axe it to look for user name memberOf properties
                DirectoryEntry de       = new DirectoryEntry(System.Configuration.ConfigurationManager.ConnectionStrings["ADConnectionString"].ConnectionString);// "LDAP"+"://magnaflow.com:389/DC=magnaflow,DC=com");
                var            searcher =
                    new DirectorySearcher(de)
                {
                    Filter = String.Format("(&(objectClass=user)(samaccountname={0}))", model.UserName)
                };
                searcher.PropertiesToLoad.Add("MemberOf");

                //get directory entries of username. Should only be one?
                var directoryEntriesFound = searcher.FindAll()
                                            .Cast <SearchResult>()
                                            .Select(result => result.GetDirectoryEntry());
                List <String> rolesList = new List <string>();

                //extract roles for this user
                foreach (DirectoryEntry entry in directoryEntriesFound)
                {
                    var info = entry.Properties["MemberOf"].Value.GetType();
                    if (entry.Properties["MemberOf"].Value is string)
                    {
                        rolesList.Add(Regex.Replace(entry.Properties["MemberOf"].Value.ToString(), @"^CN=(.*?)(?<!\\),.*", "$1"));
                    }
                    else
                    {
                        foreach (var objs in (Object[])entry.Properties["MemberOf"].Value)
                        {
                            rolesList.Add(Regex.Replace((string)objs, @"^CN=(.*?)(?<!\\),.*", "$1"));
                        }
                    }
                }

                //plase them in a string as FormsAuthenticationTicket expects data this way. Or more like that's how we want to recieve the data.
                //Really could be anything but we're expecting list of roles
                string roles     = "";
                var    firstTime = true;
                foreach (var role in rolesList)
                {
                    if (firstTime)
                    {
                        roles     = role;
                        firstTime = false;
                    }
                    else
                    {
                        roles += "," + role;
                    }
                }

                //This may or may not be necessary
                var expectedRolesList    = Constants.GetRoles();
                var containsExpectedRole = false;
                foreach (var role in expectedRolesList)
                {
                    if (roles.Contains(role))
                    {
                        containsExpectedRole = true;
                    }
                }

                if (containsExpectedRole)
                {
                    //setup ticket
                    var    authTicket      = new FormsAuthenticationTicket(1, model.UserName, DateTime.Now, DateTime.Now.AddMinutes(20), false, roles);
                    string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                    var    authCookie      = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                    HttpContext.Response.Cookies.Add(authCookie);

                    response = new Models.Response.Response()
                    {
                        Success            = true,
                        JSON_RESPONSE_DATA = null
                    };
                }
                else
                {
                    response = new Models.Response.Response()
                    {
                        Success            = false,
                        JSON_RESPONSE_DATA = null,
                        Message            = "Login error PM-2034. Contact IT."
                    };
                }


                return(this.Json(response, JsonRequestBehavior.AllowGet));
            }

            response = new Models.Response.Response()
            {
                Success            = false,
                JSON_RESPONSE_DATA = null,
                Message            = "The user name or password provided is incorrect."
            };
            return(this.Json(response, JsonRequestBehavior.AllowGet));
        }
Exemple #9
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));
            }
        }