Ejemplo n.º 1
0
        public async Task <IHttpActionResult> AddPosition([FromBody] dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            var     dbObj    = new Position()
            {
                Name         = data.name,
                Description  = data.description,
                IsDeleted    = false,
                CreationDate = DateTimeOffset.UtcNow.DateTime
            };

            store.Positions.Add(dbObj);
            store.SaveChanges();
            response = store
                       .Positions
                       .Where(c => c.PositionID == dbObj.PositionID)
                       .Select(c => new
            {
                id          = c.PositionID,
                name        = c.Name,
                description = c.Description,
            })
                       .FirstOrDefault();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> UpdateAccount([FromBody] dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;

            int?userID = UserSessionState.UserID(data.token);

            if (userID.HasValue)
            {
                int id      = (int)data.id;
                var account = store
                              .Users
                              .FirstOrDefault(u => u.UserID == id);
                if (account != null)
                {
                    account.Email      = data.email;
                    account.UserTypeID = data.typeid;
                    store.SaveChanges();
                }
                else
                {
                    status = Code.NotFound;
                }
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 3
0
        public async Task <IHttpActionResult> SetAuditMessageReaded([FromBody] MultiDBAction data)
        {
            Code status = default(Code);
            int? userID = UserSessionState.UserID(data.token);

            if (userID.HasValue)
            {
                foreach (var id in data.ids)
                {
                    var audit = store
                                .Audits
                                .FirstOrDefault(a => a.AuditID == id);
                    if (audit != null)
                    {
                        audit.Readed = true;
                        store.SaveChanges();
                    }
                    else
                    {
                        status = Code.NotFound;
                    }
                }
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> ToolsInUse([FromBody] ToolsInCategoryModel data)
        {
            Code    status   = default(Code);
            dynamic response = null;

            var objs = store
                       .Get_UsersUsedTool(data.id)
                       .Select(g => new
            {
                tool = new
                {
                    id   = g.ToolID,
                    name = g.Name
                },
                worker = new
                {
                    id         = g.WorkerID,
                    lastname   = g.LastName,
                    firstname  = g.FirstName,
                    middlename = g.MiddleName
                },
                count = g.Count
            })
                       .ToList <object>();

            response = objs;
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 5
0
        public async Task <IHttpActionResult> DeleteAccount([FromBody] SimpleDeleteModel data)
        {
            Code status   = default(Code);
            int? userId   = UserSessionState.UserID(Convert.ToString(data.token));
            int? response = null;

            if (userId != null)
            {
                var account = store
                              .Users
                              .FirstOrDefault(u => u.UserID == data.id);
                if (account != null)
                {
                    account.IsDeleted = true;
                    store.SaveChanges();
                    response = data.id;
                }
                else
                {
                    status = Code.NotFound;
                }
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// The on exception.
        /// </summary>
        /// <param name="context">
        /// The <c>context</c>.
        /// </param>
        public override void OnActionExecuting(HttpActionContext context)
        {
            if (context.ActionArguments != null &&
                context.Request.Method != HttpMethod.Get &&
                !context.Request.Content.IsMimeMultipartContent())
            {
                if (context.ActionArguments.Any(p => p.Value == null))
                {
                    context.Response = context.Request.CreateResponse(
                        HttpStatusCode.OK,
                        ApiResponseManager.CreateResponse(new Status(Code.BadRequest)));
                }
                else
                {
                    var models = context.ActionArguments.Where(p => p.Value.GetType().IsClass).Select(p => p.Value).ToList();

                    foreach (var item in models)
                    {
                        var status = Validator.Validate(item);

                        if (status != default(Code))
                        {
                            context.Response = context.Request.CreateResponse(
                                HttpStatusCode.OK,
                                ApiResponseManager.CreateResponse(new Status(status)));

                            break;
                        }
                    }
                }
            }

            base.OnActionExecuting(context);
        }
Ejemplo n.º 7
0
        public async Task <IHttpActionResult> IncIssueTool([FromBody] IncIssueModel data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            int?    userID   = UserSessionState.UserID(data.token);

            if (userID.HasValue)
            {
                store.ToolsUses.Add(new ToolsUs()
                {
                    ToolID         = data.id,
                    WorkerID       = data.workerid,
                    ManageWorkerID = store.Users.FirstOrDefault(u => u.WorkerID == userID.Value).WorkerID,
                    Count          = data.count * (data.isinc ? 1 : -1),
                    CreationDate   = DateTimeOffset.UtcNow.DateTime
                });
                store.Audits.Add(new Audit()
                {
                    Action       = (int)(data.isinc ? ToolAction.Take : ToolAction.Issue),
                    Count        = data.count,
                    Readed       = false,
                    ToolID       = data.id,
                    WorkerID     = store.Users.FirstOrDefault(u => u.WorkerID == userID).WorkerID,
                    CreationDate = DateTimeOffset.UtcNow.DateTime,
                });
                store.SaveChanges();
                response = Math.Abs(ToolsHelper.ToolStatByToolID(store, data.id));
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 8
0
        public async Task <IHttpActionResult> AddCategory([FromBody] dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            var     dbObj    = new Category()
            {
                Name         = data.name,
                Description  = data.description,
                CellFrom     = data.cellfrom,
                CellTo       = data.cellto,
                IsDeleted    = false,
                CreationDate = DateTimeOffset.UtcNow.DateTime
            };

            store.Categories.Add(dbObj);
            store.SaveChanges();
            response = store
                       .Categories
                       .Where(c => c.CategoryID == dbObj.CategoryID)
                       .Select(c => new
            {
                id            = c.CategoryID,
                name          = c.Name,
                description   = c.Description,
                toolpositions = 0,
                toolscount    = 0,
                cellfrom      = c.CellFrom,
                cellto        = c.CellTo
            })
                       .FirstOrDefault();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 9
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            var controller = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName.ToLower();

            if (controller != "tokenapi" /* || (controller.CompareTo("tokenapi") == 0 && actionContext.ActionDescriptor.ActionName.ToLower() != "validateuser")*/)
            {
                var status = default(Code);
                try
                {
                    if (actionContext.ActionArguments != null &&
                        actionContext.Request.Method != HttpMethod.Get)
                    {
                        if (actionContext.Request.Content.IsMimeMultipartContent())
                        {
                            var token = System.Web.HttpContext.Current.Request["token"];
                            if (!UserSessionState.TokenIsValid(token))
                            {
                                status = Code.AuthRequired;
                                throw new Exception();
                            }
                        }
                        else if (actionContext.ActionArguments.Any(p => p.Value == null))
                        {
                            status = Code.BadRequest;
                            throw new Exception();
                        }
                        else
                        {
                            var    model = actionContext.ActionArguments.Where(p => p.Value.GetType().IsClass).Select(p => p.Value).FirstOrDefault();
                            object token = null;
                            if (model is TokenBase)
                            {
                                token = (model as TokenBase).token;
                            }
                            else if (model is Newtonsoft.Json.Linq.JObject)
                            {
                                token = (model as Newtonsoft.Json.Linq.JObject).Value <object>("token");
                            }
                            if (!UserSessionState.TokenIsValid(token))
                            {
                                status = Code.AuthRequired;
                                throw new Exception();
                            }
                        }
                    }
                }
                catch
                {
                    actionContext.Response = actionContext.Request.CreateResponse(
                        HttpStatusCode.OK,
                        ApiResponseManager.CreateResponse(new Status(status)));
                }
            }
            base.OnActionExecuting(actionContext);
        }
Ejemplo n.º 10
0
        public async Task <IHttpActionResult> UpdateTool([FromBody] UpdateToolModel data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            var     dbObj    = store
                               .Tools
                               .Where(t => t.ToolID == data.id)
                               .FirstOrDefault();
            int userID = UserSessionState.UserID(data.token).Value;

            if (dbObj != null)
            {
                dbObj.Name   = data.name;
                dbObj.Cell   = data.cell;
                dbObj.Count += data.count;
                if (data.count > 0)
                {
                    store.Audits.Add(new Audit()
                    {
                        Action       = (int)ToolAction.Add,
                        Count        = data.count,
                        Readed       = false,
                        ToolID       = dbObj.ToolID,
                        WorkerID     = store.Users.FirstOrDefault(u => u.WorkerID == userID).WorkerID,
                        CreationDate = DateTimeOffset.UtcNow.DateTime,
                    });
                }
                if (data.low.HasValue)
                {
                    dbObj.LowCount = data.low.Value;
                }
                if (data.lower.HasValue)
                {
                    dbObj.LowerCount = data.lower.Value;
                }
                store.SaveChanges();
                response = new
                {
                    id         = dbObj.ToolID,
                    name       = dbObj.Name,
                    cell       = dbObj.Cell,
                    low        = dbObj.LowCount,
                    lower      = dbObj.LowerCount,
                    toolscount = dbObj.Count,
                    toolsinuse = Math.Abs(ToolsHelper.ToolStatByToolID(store, dbObj.ToolID)),
                };
            }
            else
            {
                status = Code.NotFound;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 11
0
        public async Task <HttpResponseMessage> UserLogoff([FromBody] TokenBase tokenObj)
        {
            var    status   = default(Code);
            string token    = Convert.ToString(tokenObj.token);
            var    uSession = store
                              .UserSessions
                              .FirstOrDefault(us => us.Token.CompareTo(token) == 0);

            if (uSession != null)
            {
                store.UserSessions.Remove(uSession);
                store.SaveChanges();
            }
            return(Request.CreateResponse(HttpStatusCode.OK, ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 12
0
        public async Task <IHttpActionResult> UpdatePosition([FromBody] UpdateCategoryModel data)
        {
            Code status   = default(Code);
            var  position = store
                            .Positions
                            .Where(c => c.PositionID == data.id)
                            .FirstOrDefault();

            if (position != null)
            {
                position.Name        = data.name;
                position.Description = data.description;
            }
            store.SaveChanges();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 13
0
        public async Task <HttpResponseMessage> PasswordRecovery([FromBody] RecoveryPasswordModel user)
        {
            var     status   = default(Code);
            var     dbuser   = store.Users.FirstOrDefault(u => u.Email.ToLower().CompareTo(user.email.ToLower()) == 0);
            dynamic response = null;

            if (dbuser != null)
            {
                if (dbuser.IsDeleted == null || (dbuser.IsDeleted != null && !dbuser.IsDeleted.Value))
                {
                    int passLength = 6;
                    if (!int.TryParse(ConfigurationManager.AppSettings["newPassLength"], out passLength))
                    {
                        passLength = 6;
                    }
                    string password = PasswordGenerator.GetPassword(passLength);
                    dbuser.Password = PasswordGenerator.GetPasswordSHA1(password, dbuser.Salt);
                    store.SaveChanges();

                    /*MailAddress to = new MailAddress(dbuser.Email);
                     * MailMessage message = new MailMessage();
                     * message.To.Add(to);
                     * message.Subject = message.Subject = System.Configuration.ConfigurationManager.AppSettings["resetPass_EmailSubject"];
                     * string str = System.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("~/Email/PasswordRecovery.html"));
                     * message.Body = String.Format(str, dbuser.FirstName, dbuser.LastName, "http://" + user.host, dbuser.UserName, password);
                     * message.IsBodyHtml = true;
                     * SmtpClient client = new SmtpClient();
                     * try
                     * {
                     *  client.Send(message);
                     * }
                     * catch (Exception exc)
                     * {
                     *  status = Code.EmailSendFailed;
                     * }*/
                }
                else
                {
                    status = Code.UserHasDeleted;
                }
            }
            else
            {
                status = Code.UserWithEmailNotFound;
            }
            return(Request.CreateResponse(HttpStatusCode.OK, ApiResponseManager.CreateResponse(new Status(status), (object)response)));
        }
Ejemplo n.º 14
0
        public async Task <IHttpActionResult> AddTool(dynamic data)
        {
            data = Newtonsoft.Json.JsonConvert.DeserializeObject <ExpandoObject>(Convert.ToString(data), new ExpandoObjectConverter());
            int     userID   = UserSessionState.UserID(data.token);
            Code    status   = default(Code);
            dynamic response = null;
            var     dbObj    = new Tool()
            {
                Name         = data.name,
                CategoryID   = Convert.ToInt32(data.category),
                Cell         = Convert.ToInt32(data.cell),
                Count        = Convert.ToInt32(data.count),
                IsDeleted    = false,
                CreationDate = DateTimeOffset.UtcNow.DateTime
            };

            if (ExpandoHelper.PropertyExists(data, "low"))
            {
                dbObj.LowCount = Convert.ToInt32(data.low);
            }
            if (ExpandoHelper.PropertyExists(data, "lower"))
            {
                dbObj.LowerCount = Convert.ToInt32(data.lower);
            }
            store.Tools.Add(dbObj);
            store.Audits.Add(new Audit()
            {
                Action       = (int)ToolAction.Add,
                Count        = dbObj.Count,
                Readed       = false,
                ToolID       = dbObj.ToolID,
                WorkerID     = store.Users.FirstOrDefault(u => u.WorkerID == userID).WorkerID,
                CreationDate = DateTimeOffset.UtcNow.DateTime,
            });
            store.SaveChanges();
            response = new
            {
                id         = dbObj.ToolID,
                name       = dbObj.Name,
                cell       = dbObj.Cell,
                low        = dbObj.LowCount,
                lower      = dbObj.LowerCount,
                toolscount = dbObj.Count,
                toolsinuse = 0,
            };
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 15
0
 public override void OnActionExecuting(HttpActionContext actionContext)
 {
     if (actionContext.ActionArguments.ContainsKey(this.Parameter) &&
         actionContext.Request.Method == HttpMethod.Get)
     {
         var filter = actionContext.ActionDescriptor.GetCustomAttributes <HttpGetTypeAttribute>(true).FirstOrDefault();
         if (filter != null)
         {
             var qs = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query);
             if (qs.HasKeys())
             {
                 var data   = JsonConvert.DeserializeObject(qs[this.Parameter], filter.RequestObjectType);
                 var status = Validator.Validate(data);
                 try
                 {
                     if (status != default(Code))
                     {
                         throw new Exception();
                     }
                     if (data is TokenBase)
                     {
                         if (!UserSessionState.TokenIsValid((data as TokenBase).token))
                         {
                             status = Code.AuthRequired;
                             throw new Exception();
                         }
                     }
                     else
                     {
                         status = Code.BadRequest;
                         throw new Exception();
                     }
                     actionContext.ActionArguments[Parameter] = data;
                 }
                 catch
                 {
                     actionContext.Response = actionContext.Request.CreateResponse(
                         HttpStatusCode.OK,
                         ApiResponseManager.CreateResponse(new Status(status)));
                 }
             }
         }
     }
     base.OnActionExecuting(actionContext);
 }
Ejemplo n.º 16
0
        public async Task <IHttpActionResult> UpdateWorker([FromBody] UpdateWorkerModel data)
        {
            Code status = default(Code);
            var  worker = store
                          .Workers
                          .Where(c => c.WorkerID == data.id)
                          .FirstOrDefault();

            if (worker != null)
            {
                worker.FirstName  = data.firstname;
                worker.LastName   = data.lastname;
                worker.MiddleName = data.middlename;
                worker.PositionID = data.positionid;
            }
            store.SaveChanges();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 17
0
        public async Task <IHttpActionResult> UpdateCategory([FromBody] UpdateCategoryModel data)
        {
            Code status   = default(Code);
            var  category = store
                            .Categories
                            .Where(c => c.CategoryID == data.id)
                            .FirstOrDefault();

            if (category != null)
            {
                category.Name        = data.name;
                category.Description = data.description;
                category.CellFrom    = data.cellfrom;
                category.CellTo      = data.cellto;
            }
            store.SaveChanges();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 18
0
        public async Task <IHttpActionResult> DeleteCategory([FromBody] SimpleDeleteModel data)
        {
            Code status   = default(Code);
            var  category = store
                            .Categories
                            .Where(c => c.CategoryID == data.id).FirstOrDefault();

            if (category != null)
            {
                category.IsDeleted = true;
                store.SaveChanges();
            }
            else
            {
                status = Code.NotFound;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status))));
        }
Ejemplo n.º 19
0
        public virtual async Task <IHttpActionResult> GetSummary(dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            var     allTools = store
                               .Tools
                               .Where(t => !t.IsDeleted.HasValue || (t.IsDeleted.HasValue && !t.IsDeleted.Value) &&
                                      !t.Category.IsDeleted)
                               .Select(t => t.Count)
                               .ToList();

            response = new
            {
                all   = allTools.Count > 0 ? allTools.Sum() : 0,
                inuse = System.Math.Abs(ToolsHelper.ToolStat(store)),
            };
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 20
0
        public async Task <IHttpActionResult> GetUserTypes([FromBody] dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;

            int?userID = UserSessionState.UserID(data.token);

            if (userID.HasValue)
            {
                response = store
                           .UserTypes
                           .Select(ut => new
                {
                    id   = ut.UserTypeID,
                    name = ut.Name
                });
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 21
0
        public async Task <IHttpActionResult> DeleteTool([FromBody] SimpleDeleteModel data)
        {
            Code status   = default(Code);
            int? userId   = UserSessionState.UserID(Convert.ToString(data.token));
            int? response = null;

            if (userId != null)
            {
                var c = ToolsHelper.ToolStatByToolID(store, data.id);
                if (c <= 0)
                {
                    var tool = store
                               .Tools
                               .FirstOrDefault(t => t.ToolID == data.id);
                    tool.IsDeleted = true;
                    store
                    .DeletedTools
                    .Add(new DeletedTool()
                    {
                        ToolID      = data.id,
                        WorkerID    = store.Users.FirstOrDefault(u => u.WorkerID == userId.Value).WorkerID,
                        DeletedDate = DateTimeOffset.UtcNow.DateTime
                    });
                    store.SaveChanges();
                    response = data.id;
                }
                else
                {
                    status = Code.ToolIsInUse;
                }
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 22
0
        public async Task <HttpResponseMessage> ValidateUser([FromBody] LoginUserModel user)
        {
            var    status = default(Code);
            string token  = null;
            var    dbuser = store
                            .Users
                            .FirstOrDefault(u => u.UserName.ToLower().CompareTo(user.username.ToLower()) == 0);
            dynamic response = null;

            if (dbuser != null)
            {
                if (dbuser.IsDeleted == null || (dbuser.IsDeleted != null && !dbuser.IsDeleted.Value))
                {
                    if (dbuser.Password.ToUpper().CompareTo(PasswordGenerator.GetPasswordSHA1(Convert.ToString(user.password), dbuser.Salt)) == 0)
                    {
                        token               = UserSessionState.AddNew(dbuser.WorkerID, user.rememberme);
                        response            = new ExpandoObject();
                        response.rememberme = user.rememberme;
                        response.username   = dbuser.UserName;
                        response.privilege  = dbuser.UserType.AccessLevel;
                    }
                    else
                    {
                        status = Code.LoginFailed;
                    }
                }
                else
                {
                    status = Code.UserHasDeleted;
                }
            }
            else
            {
                status = Code.LoginFailed;
            }
            return(Request.CreateResponse(HttpStatusCode.OK, ApiResponseManager.CreateResponse(new Status(status), (object)response, (!string.IsNullOrWhiteSpace(token) ? token : null))));
        }
Ejemplo n.º 23
0
        public async Task <IHttpActionResult> AddWorker([FromBody] dynamic data)
        {
            Code    status   = default(Code);
            dynamic response = null;
            var     dbObj    = new Worker()
            {
                FirstName    = data.firstname,
                LastName     = data.lastname,
                MiddleName   = data.middlename,
                PositionID   = data.positionid,
                IsDeleted    = false,
                CreationDate = DateTimeOffset.UtcNow.DateTime
            };

            store.Workers.Add(dbObj);
            store.SaveChanges();
            var position = store
                           .Workers
                           .Where(w => w.WorkerID == dbObj.WorkerID)
                           .Select(w => w.Position)
                           .FirstOrDefault();

            response = new
            {
                id         = dbObj.WorkerID,
                lastname   = dbObj.LastName,
                firstname  = dbObj.FirstName,
                middlename = dbObj.MiddleName,
                position   = new
                {
                    id   = position.PositionID,
                    name = position.Name
                },
                toolscount = Math.Abs(ToolsHelper.ToolStatByWorkerID(store, dbObj.WorkerID))
            };
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 24
0
        public async Task <IHttpActionResult> ChangePassword([FromBody] ChangePasswordModel data)
        {
            var status   = default(Code);
            var response = false;
            int?userID   = UserSessionState.UserID(data.token);

            if (userID.HasValue)
            {
                var dbuser = store
                             .Users
                             .Where(u => u.WorkerID.CompareTo(userID.Value) == 0 && (!u.IsDeleted.HasValue || (u.IsDeleted.HasValue && !u.IsDeleted.Value)))
                             .FirstOrDefault();
                if (dbuser != null)
                {
                    if (dbuser.Password.ToUpper().CompareTo(PasswordGenerator.GetPasswordSHA1(Convert.ToString(data.oldpass), dbuser.Salt)) != 0)
                    {
                        status = Code.OldPassIncorrect;
                    }
                    else
                    {
                        dbuser.Password = PasswordGenerator.GetPasswordSHA1(data.newpass, dbuser.Salt);
                        store.SaveChanges();
                        response = true;
                    }
                }
                else
                {
                    status = Code.NotFound;
                }
            }
            else
            {
                status = Code.AuthRequired;
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 25
0
        public virtual async Task <IHttpActionResult> GetPartialData(dynamic data)
        {
            var response = GetSortableAndGroupedData(data);

            return(Ok(ApiResponseManager.CreateResponse(new Status(response != null ? Code.Success : Code.AuthRequired), response)));
        }
Ejemplo n.º 26
0
        public virtual async Task <IHttpActionResult> GetAllDataRequest(dynamic data)
        {
            dynamic response = GetAllData(data);

            return(Ok(ApiResponseManager.CreateResponse(new Status(), new { count = response.Count, data = response })));
        }
Ejemplo n.º 27
0
        public async Task <IHttpActionResult> WriteOffTool([FromBody] WriteOffModel data)
        {
            Code    status   = default(Code);
            dynamic response = null;

            if (data.count > 0)
            {
                int?userID = UserSessionState.UserID(data.token);
                if (userID.HasValue)
                {
                    var allTools = store
                                   .Tools
                                   .Where(t => (!t.IsDeleted.HasValue || (t.IsDeleted.HasValue && !t.IsDeleted.Value)) &&
                                          !t.Category.IsDeleted &&
                                          t.ToolID == data.id)
                                   .Select(t => t.Count)
                                   .ToList();
                    var all        = allTools.Count > 0 ? allTools.Sum() : 0;
                    int inuseCount = Math.Abs(ToolsHelper.ToolStatByToolID(store, data.id));
                    if (data.count <= all - inuseCount)
                    {
                        store
                        .WriteOffTools
                        .Add(new WriteOffTool()
                        {
                            ToolID       = data.id,
                            WorkerID     = store.Users.FirstOrDefault(u => u.WorkerID == userID.Value).WorkerID,
                            Count        = data.count,
                            Comment      = data.comment,
                            WriteOffTime = DateTimeOffset.UtcNow.DateTime
                        });
                        store.Audits.Add(new Audit()
                        {
                            Action       = (int)ToolAction.WriteOff,
                            Count        = data.count,
                            Readed       = false,
                            ToolID       = data.id,
                            WorkerID     = store.Users.FirstOrDefault(u => u.WorkerID == userID.Value).WorkerID,
                            CreationDate = DateTimeOffset.UtcNow.DateTime,
                        });
                        var tool = store
                                   .Tools
                                   .FirstOrDefault(t => t.ToolID == data.id);
                        if (tool != null)
                        {
                            response = tool.Count -= data.count;
                            store.SaveChanges();
                        }
                        else
                        {
                            status = Code.NotFound;
                        }
                    }
                    else
                    {
                        status = Code.OperationFailed;
                    }
                }
                else
                {
                    status = Code.AuthRequired;
                }
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 28
0
        public async Task <IHttpActionResult> AddAccount(dynamic data)
        {
            data = Newtonsoft.Json.JsonConvert.DeserializeObject <ExpandoObject>(Convert.ToString(data), new ExpandoObjectConverter());
            Code    status   = default(Code);
            dynamic response = null;
            string  password = PasswordGenerator.GetPassword(8);
            int     salt     = new Random().Next(0, int.MaxValue);
            var     dbObj    = new User()
            {
                UserName    = data.username,
                Salt        = salt,
                Password    = PasswordGenerator.GetPasswordSHA1(password, salt),
                UserTypeID  = Convert.ToInt32(data.typeid),
                WorkerID    = Convert.ToInt32(data.workerid),
                Email       = data.email,
                IsDeleted   = false,
                CreatedDate = DateTimeOffset.UtcNow.DateTime
            };

            store.Users.Add(dbObj);
            store.SaveChanges();
            MailAddress to      = new MailAddress(dbObj.Email);
            MailMessage message = new MailMessage();

            message.To.Add(to);
            message.Subject = "Регистрация";
            var wr = store
                     .Users
                     .Where(u => u.UserID == dbObj.UserID)
                     .Select(u => u.Worker)
                     .FirstOrDefault();

            message.Body = String.Format(@"<p>Ув., {0} {1}, ваш аккаунт был успешно создан</p>
                                        <p>Для вас был создан пароль, который вы можете изменить после первого входа на сайт</p>
                                        <p>Ваши учетный данные:</p>
                                                        Имя пользователя: {2}<br>
                                                        Пароль: {3}<br>
                                        <hr />
                                        <p>Best regards!</p>",
                                         wr.FirstName, wr.LastName, dbObj.UserName, password);
            message.IsBodyHtml = true;
            SmtpClient client = new SmtpClient();

            try
            {
                client.Send(message);
            }
            catch (Exception exc)
            {
                //SLICLog.Error(exc);
            }
            response = store
                       .Users
                       .Where(u => (!u.IsDeleted.HasValue || (u.IsDeleted.HasValue && !u.IsDeleted.Value)) && u.UserID == dbObj.UserID)
                       .ToList()
                       .Select(u =>
            {
                dynamic expando  = new ExpandoObject();
                expando.id       = u.UserID;
                expando.username = u.UserName;
                var userType     = store.UserTypes.FirstOrDefault(ut => ut.UserTypeID == u.UserTypeID);
                expando.type     = new
                {
                    id   = u.UserTypeID,
                    name = userType.Name
                };
                expando.email  = u.Email;
                var worker     = store.Workers.FirstOrDefault(w => w.WorkerID == u.WorkerID);
                expando.worker = new
                {
                    id         = u.WorkerID,
                    lastname   = worker.LastName,
                    firstname  = worker.FirstName,
                    middlename = worker.MiddleName
                };
                expando.creationdate = u.CreatedDate.ToString("dd.MM.yyyyTHH:mm");
                return(expando);
            })
                       .FirstOrDefault();
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), response)));
        }
Ejemplo n.º 29
0
        public async Task <IHttpActionResult> GetToolsInCategory([FromBody] dynamic data)
        {
            Code status   = default(Code);
            int  id       = (int)data.extend.id;
            var  response = store
                            .Tools
                            .Where(t => t.CategoryID == id && (!t.IsDeleted.HasValue || (t.IsDeleted.HasValue && !t.IsDeleted.Value)))
                            .AsEnumerable()
                            .OrderBy(t => t.Name)
                            .Select(t =>
            {
                dynamic expando    = new ExpandoObject();
                expando.id         = t.ToolID;
                expando.name       = t.Name;
                expando.cell       = t.Cell;
                expando.low        = t.LowCount;
                expando.lower      = t.LowerCount;
                expando.toolscount = t.Count;
                expando.toolsinuse = Math.Abs(ToolsHelper.ToolStatByToolID(store, t.ToolID));
                return(expando);
            })
                            .ToList <object>();
            string searchStr = !String.IsNullOrWhiteSpace(data.sort.search) ? data.sort.search.ToLower() : null;

            if (!string.IsNullOrWhiteSpace(searchStr) && response.Count > 0)
            {
                Type myListElementType = response[0].GetType();
                if (myListElementType == typeof(ExpandoObject))
                {
                    response = response
                               .Where(t => ((IDictionary <string, object>)t)
                                      .Values
                                      .Where(v => !string.IsNullOrWhiteSpace(Convert.ToString(v)) && Convert.ToString(v).ToLower().Contains(searchStr.ToLower()))
                                      .Count() > 0)
                               .ToList();
                }
                else
                {
                    List <object> searchedList = new List <object>();
                    foreach (var item in response)
                    {
                        var  pis        = item.GetType().GetProperties();
                        bool isInSearch = false;
                        foreach (var pi in pis)
                        {
                            string value = Convert.ToString(pi.GetValue(item, null));
                            if (!string.IsNullOrWhiteSpace(value) && value.ToLower().Contains(searchStr.ToLower()))
                            {
                                isInSearch = true;
                                break;
                            }
                        }
                        if (isInSearch)
                        {
                            searchedList.Add(item);
                        }
                    }
                    response = searchedList;
                }
            }
            return(Ok(ApiResponseManager.CreateResponse(new Status(status), new { data = response })));
        }