Пример #1
0
        private Task Save()
        {
            if (!ActionIdentifier.HasValue)
            {
                var action = new Business.Model.Action
                {
                    Identifier               = Guid.NewGuid(),
                    DeviceIdentifier         = SelectedDevice.Identifier,
                    ActionTypeIdentifier     = SelectedActionType.Identifer,
                    ActionArgumentIdentifier = SelectedActionArgument.Identifer,
                    ActionTrigger            = SelectedActionTrigger
                };

                _actionRepository.Add(action);
                ActionIdentifier = action.Identifier;
            }
            else
            {
                _actionUpdater.Update(ActionIdentifier.Value, SelectedDevice.Identifier, SelectedActionType.Identifer,
                                      SelectedActionArgument.Identifer, SelectedActionTrigger);
            }

            MessengerInstance.Send(new TasksUpdated());

            return(Task.FromResult(true));
        }
Пример #2
0
        public HttpResponseMessage Update(Guid id, [FromBody] Business.Model.Action action)
        {
            var userClaims = Request.GetOwinContext().Authentication.User;
            var userId     = Guid.Parse(userClaims.Claims.Single(x => x.Type == ClaimTypes.Sid).Value);

            _actionRepository.UpdateAction(id, userId, action.Quantity);
            return(Request.CreateResponse(HttpStatusCode.OK, _actionRepository.GetAction(id)));
        }
Пример #3
0
        public void ActionsByInventarizationsWorks()
        {
//            DELETE FROM public."Tasks";
//DELETE FROM public."Users";
//DELETE FROM public."Actions";
//DELETE FROM public."Zones";
//DELETE FROM public."Inventorizations";
//DELETE FROM public."Companies"

            User user = userRepositoriy.CreateUser(new User()
            {
                FirstName = "test_name", FamilyName = "test_family", MiddleName = "test_middlename", Level = UserLevel.Scaner, CreatedAt = DateTime.UtcNow, Login = "******", Password = "******"
            });
            Company company = companyRepositoriy.CreateCompany("Тест1");

            Business.Model.Inventorization inventarisation = inventorizationRepositoriy.CreateInventorization(company.Id, DateTime.UtcNow);
            Guid firstActionId  = Guid.NewGuid();
            Guid secondActionId = Guid.NewGuid();

            Business.Model.Action firstAction = new Business.Model.Action()
            {
                Id              = firstActionId,
                DateTime        = DateTime.UtcNow,
                Type            = ActionType.FirstScan,
                UserId          = user.Id,
                Inventorization = inventarisation.Id,
                BarCode         = "1",
                Quantity        = 1,
            };

            Business.Model.Action secondAction = new Business.Model.Action()
            {
                Id       = firstActionId,
                DateTime = DateTime.UtcNow,
                Type     = ActionType.FirstScan,
                UserId   = user.Id,
                Zone     = inventarisation.Id,
                BarCode  = "1",
                Quantity = 1,
            };

            actionRepository.CreateAction(firstAction);
            actionRepository.CreateAction(secondAction);
            List <Business.Model.Action> actions = actionRepository.GetActionsByInventorization(inventarisation.Id);

            Assert.IsNotNull(actions);
            Assert.AreEqual(2, actions.Count());

            actionRepository.DeleteAction(firstActionId);
            actionRepository.DeleteAction(secondActionId);
            inventorizationRepositoriy.DeleteInventorization(inventarisation.Id);
            companyRepositoriy.DeleteCompany(company.Id);
            userRepositoriy.DeleteUser(user.Id);
        }
Пример #4
0
 public void CreateAction(Business.Model.Action action)
 {
     using (var conn = new NpgsqlConnection(_connectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand())
         {
             cmd.Connection  = conn;
             cmd.CommandText = "INSERT INTO public.\"Actions\"(\"Id\", \"DateTime\", \"Action\", \"UserId\", \"BarCode\", \"Zone\", \"Inventorization\", \"Quantity\") VALUES(:Id, :DateTime, :Action, :UserId, :BarCode, :Zone, :Inventorization, :Quantity)";
             cmd.Parameters.Add(new NpgsqlParameter("Id", action.Id));
             cmd.Parameters.Add(new NpgsqlParameter("DateTime", action.DateTime));
             cmd.Parameters.Add(new NpgsqlParameter("Action", (int)action.Type));
             cmd.Parameters.Add(new NpgsqlParameter("UserId", action.UserId));
             cmd.Parameters.Add(new NpgsqlParameter("BarCode", action.BarCode));
             cmd.Parameters.Add(new NpgsqlParameter("Zone", action.Zone));
             cmd.Parameters.Add(new NpgsqlParameter("Inventorization", action.Inventorization));
             cmd.Parameters.Add(new NpgsqlParameter("Quantity", action.Quantity));
             cmd.ExecuteNonQuery();
         }
     }
 }
Пример #5
0
 public void UpdateAction(Business.Model.Action action)
 {
     using (var conn = new NpgsqlConnection(_connectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand())
         {
             cmd.Connection  = conn;
             cmd.CommandText = @"UPDATE public.""Actions""
                     SET ""DateTime""=@dateTime, ""UserId""=@userId, ""Quantity""=@quantity, ""BarCode""=@barCode, ""Zone""=@zone, ""Action""=@action
                 WHERE ""Id"" = @id";
             cmd.Parameters.Add(new NpgsqlParameter("id", action.Id));
             cmd.Parameters.Add(new NpgsqlParameter("dateTime", DateTime.UtcNow));
             cmd.Parameters.Add(new NpgsqlParameter("userId", action.UserId));
             cmd.Parameters.Add(new NpgsqlParameter("quantity", action.Quantity));
             cmd.Parameters.Add(new NpgsqlParameter("barCode", action.BarCode));
             cmd.Parameters.Add(new NpgsqlParameter("action", (int)action.Type));
             cmd.Parameters.Add(new NpgsqlParameter("zone", action.Zone));
             cmd.ExecuteNonQuery();
         }
     }
 }
Пример #6
0
        public HttpResponseMessage SaveAction(Guid inventorization, [FromBody] SaveActionVM actionVM)
        {
            try
            {
                var userClaims = Request.GetOwinContext().Authentication.User;

                Business.Model.Action action = new Business.Model.Action()
                {
                    Id              = actionVM.Id.GetValueOrDefault(),
                    BarCode         = actionVM.BarCode == null ? string.Empty : actionVM.BarCode,
                    DateTime        = actionVM.DateTime.GetValueOrDefault(DateTime.UtcNow),
                    Inventorization = inventorization,
                    Quantity        = actionVM.Quantity,
                    Type            = actionVM.Type,
                    Zone            = actionVM.Zone,
                    UserId          = Guid.Parse(userClaims.Claims.Single(x => x.Type == ClaimTypes.Sid).Value)
                };
                Business.Model.Action updatedAction = actionDomain.UpsertAction(action);

                if (actionVM.Type != ActionType.BlindScan)
                {
                    var         inventarization = _inventorizationRepository.GetInventorization(inventorization);
                    List <Item> items           = _companyRepository.GetItems(inventarization.Company);
                    Item        foundItem       = items.FirstOrDefault(x => x.Code == action.BarCode);
                    return(Request.CreateResponse(HttpStatusCode.OK, new { foundItem, action = updatedAction }));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, new { ok = true, action = updatedAction }));
                }
            }
            catch (Exception ex)
            {
                string message = $"Create action error. Action:{Environment.NewLine} {JsonConvert.SerializeObject(actionVM)}";
                _logger.Error(ex, message);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
        private Task Save()
        {
            if (!ActionIdentifier.HasValue)
            {
                var action = new Business.Model.Action
                {
                    Identifier = Guid.NewGuid(),
                    DeviceIdentifier = SelectedDevice.Identifier,
                    ActionTypeIdentifier = SelectedActionType.Identifer,
                    ActionArgumentIdentifier = SelectedActionArgument.Identifer,
                    ActionTrigger = SelectedActionTrigger
                };

                _actionRepository.Add(action);
                ActionIdentifier = action.Identifier;
            }
            else
            {
                _actionUpdater.Update(ActionIdentifier.Value, SelectedDevice.Identifier, SelectedActionType.Identifer,
                    SelectedActionArgument.Identifer, SelectedActionTrigger);
            }

            MessengerInstance.Send(new TasksUpdated());

            return Task.FromResult(true);
        }