Esempio n. 1
0
        public IHttpActionResult INV3(Guid inventorizationId)
        {
            Report3Generator generator = new Report3Generator(AppDomain.CurrentDomain.BaseDirectory + @"\Templates\Report3.XLSX");

            Business.Model.Inventorization inventorization = inventorizationRepository.GetInventorization(inventorizationId);
            if (inventorization == null)
            {
                return(NotFound());
            }
            List <Rests> rests = inventorizationRepository.GetRests(inventorizationId);
            List <Business.Model.Action> actions = actionRepository.GetActionsByInventorization(inventorizationId);

            string[]           codes = rests.Select(x => x.Code).Union(actions.Select(x => x.BarCode)).Distinct().ToArray();
            IEnumerable <Item> items = companyRepository.GetItems(inventorization.Company).Where(x => x.Source == ItemSource.Import && codes.Any(r => r == x.Code));

            using (MemoryStream stream = generator.Generate(items.ToList(), actions, rests))
            {
                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(stream.ToArray())
                };
                result.Content.Headers.ContentDisposition =
                    new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "Report3.xlsx"
                };
                result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
                return(ResponseMessage(result));
            }
        }
Esempio n. 2
0
        public void TaskCreatingWorks()
        {
            Guid userGuid    = Guid.NewGuid();
            Guid managerGuid = Guid.NewGuid();
            User user        = userRepositoriy.CreateUser(new User()
            {
                Id = userGuid, FirstName = "test_name", FamilyName = "test_family", MiddleName = "test_middlename", Level = UserLevel.Scaner, CreatedAt = DateTime.UtcNow, Login = "******", Password = "******"
            });
            User manager = userRepositoriy.CreateUser(new User()
            {
                Id = userGuid, FirstName = "test_manager_name", FamilyName = "test_manager_family", MiddleName = "test_manager_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 firstTaskId = Guid.NewGuid();

            taskRepository.CreateTask(firstTaskId, managerGuid, userGuid, inventarisation.Id);

            List <Business.Model.Task> tasks = taskRepository.GetTasks(userGuid, inventarisation.Id);

            Assert.IsNotNull(tasks);
            Assert.AreEqual(1, tasks.Count());

            taskRepository.DeleteTask(firstTaskId);
            inventorizationRepositoriy.DeleteInventorization(inventarisation.Id);
            companyRepositoriy.DeleteCompany(company.Id);
        }
        public Business.Model.Inventorization CreateInventorization(Guid companyId, DateTime?date)
        {
            Business.Model.Inventorization result = new Business.Model.Inventorization();
            using (var conn = new NpgsqlConnection(_connectionString))
            {
                conn.Open();
                using (var cmd = new NpgsqlCommand())
                {
                    Guid id = Guid.NewGuid();
                    cmd.Connection  = conn;
                    cmd.CommandText = "INSERT INTO public.\"Inventorizations\"(\"Id\", \"Company\", \"CreatedAt\", \"Date\") VALUES(:Id, :Company, :CreatedAt, :Date)";
                    cmd.Parameters.Add(new NpgsqlParameter("Id", id));
                    cmd.Parameters.Add(new NpgsqlParameter("Company", companyId));
                    cmd.Parameters.Add(new NpgsqlParameter("CreatedAt", DateTime.UtcNow));
                    cmd.Parameters.Add(new NpgsqlParameter("Date", date ?? DateTime.UtcNow));
                    cmd.ExecuteNonQuery();

                    cmd.CommandText = "SELECT * FROM public.\"Inventorizations\" WHERE \"Id\" = @Id";
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            result = reader.ToInventorization();
                        }
                    }
                }
            }
            return(result);
        }
Esempio n. 4
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);
        }
Esempio n. 5
0
 public HttpResponseMessage GetInventorization(Guid id, Guid inventorizationId)
 {
     Business.Model.Inventorization inventorization = _inventorizationRepository.GetInventorization(inventorizationId);
     if (inventorization == null)
     {
         Request.CreateResponse(HttpStatusCode.NotFound);
     }
     if (inventorization.Company != id)
     {
         Request.CreateResponse(HttpStatusCode.BadRequest);
     }
     return(Request.CreateResponse(HttpStatusCode.OK, inventorization));
 }
Esempio n. 6
0
        public void TaskZoneAssigningWorks()
        {
            User user = userRepositoriy.CreateUser(new User()
            {
                FirstName = "test_name", FamilyName = "test_family", MiddleName = "test_middlename", Level = UserLevel.Scaner, CreatedAt = DateTime.UtcNow, Login = "******", Password = "******"
            });
            User manager = userRepositoriy.CreateUser(new User()
            {
                FirstName = "test_manager_name", FamilyName = "test_manager_family", MiddleName = "test_manager_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      firstZoneId = Guid.NewGuid();
            ZoneModel firstZone   = new ZoneModel()
            {
                Id   = firstZoneId,
                Name = "тестовая зона 1"
            };

            zoneRepository.Create(firstZone);
            Guid firstTaskId = Guid.NewGuid();

            taskRepository.CreateTask(firstTaskId, manager.Id, user.Id, inventarisation.Id);

            Business.Model.Task task = taskRepository.GetTask(firstTaskId);
            Assert.AreEqual(0, task.ZoneIds.Length);

            taskRepository.AddZone(firstTaskId, firstZoneId);

            task = taskRepository.GetTask(firstTaskId);

            Assert.IsNotNull(task);
            Assert.AreEqual(1, task.ZoneIds.Count());

            taskRepository.DeleteTask(firstTaskId);
            zoneRepository.DeleteZone(firstZoneId);
            inventorizationRepositoriy.DeleteInventorization(inventarisation.Id);
            companyRepositoriy.DeleteCompany(company.Id);
        }
 public void UpdateInventorization(Business.Model.Inventorization inventorization)
 {
     using (var conn = new NpgsqlConnection(_connectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand())
         {
             cmd.Connection  = conn;
             cmd.CommandText = @"UPDATE public.""Inventorizations"" 
                 SET ""ClosedAt"" = @closedAt,
                     ""Date"" = @date,
                     ""Name"" = @name
                 WHERE ""Id"" = @id";
             cmd.Parameters.Add(new NpgsqlParameter("id", inventorization.Id));
             cmd.Parameters.Add(new NpgsqlParameter("closedAt", inventorization.ClosedAt));
             cmd.Parameters.Add(new NpgsqlParameter("date", inventorization.Date));
             cmd.Parameters.Add(new NpgsqlParameter("name", inventorization.Name));
             cmd.ExecuteNonQuery();
         }
     }
 }
Esempio n. 8
0
        public void ZoneCreatingWorks()
        {
            Company company = companyRepositoriy.CreateCompany("Тест1");

            Business.Model.Inventorization inventarisation = inventorizationRepositoriy.CreateInventorization(company.Id, DateTime.UtcNow);
            Guid      firstZoneId = Guid.NewGuid();
            ZoneModel firstZone   = new ZoneModel()
            {
                Id   = firstZoneId,
                Name = "тестовая зона 1"
            };

            zoneRepository.Create(firstZone);
            List <ZoneModel> zones = zoneRepository.GetZones(new Guid[] { firstZoneId });

            Assert.IsNotNull(zones);
            Assert.AreEqual(1, zones.Count());

            zoneRepository.DeleteZone(firstZoneId);
            inventorizationRepositoriy.DeleteInventorization(inventarisation.Id);
            companyRepositoriy.DeleteCompany(company.Id);
        }
 public Business.Model.Inventorization GetInventorization(Guid id)
 {
     Business.Model.Inventorization result = new Business.Model.Inventorization();
     using (var conn = new NpgsqlConnection(_connectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand())
         {
             cmd.Connection  = conn;
             cmd.CommandText = "SELECT * FROM public.\"Inventorizations\" WHERE \"Id\" = @Id";
             cmd.Parameters.Add(new NpgsqlParameter("Id", id));
             using (var reader = cmd.ExecuteReader())
             {
                 while (reader.Read())
                 {
                     result = reader.ToInventorization();
                 }
             }
         }
     }
     return(result);
 }
Esempio n. 10
0
        public void UpdateItem(Item item)
        {
            Business.Model.Inventorization result = new Business.Model.Inventorization();
            using (var conn = new NpgsqlConnection(_connectionString))
            {
                conn.Open();
                using (var cmd = new NpgsqlCommand())
                {
                    Guid id = Guid.NewGuid();
                    cmd.Connection  = conn;
                    cmd.CommandText = @"UPDATE public.""Item"" SET ""CompanyId""=@Company, ""Code""=@Code, ""Description""=@Description, ""Name""=@Name, ""ItemNumber"" = @ItemNumber WHERE ""Id"" = @Id";
                    cmd.Parameters.Add(new NpgsqlParameter("Id", item.Id));
                    cmd.Parameters.Add(new NpgsqlParameter("Company", item.CompanyId));
                    cmd.Parameters.Add(new NpgsqlParameter("Code", item.Code));
                    cmd.Parameters.Add(new NpgsqlParameter("Description", string.IsNullOrWhiteSpace(item.Description) ? string.Empty : item.Description));
                    cmd.Parameters.Add(new NpgsqlParameter("Name", item.Name));
                    cmd.Parameters.Add(new NpgsqlParameter("ItemNumber", string.IsNullOrWhiteSpace(item.ItemNumber) ? string.Empty : item.ItemNumber));

                    cmd.ExecuteNonQuery();
                }
            }
            _itemsCache.Clear();
        }
Esempio n. 11
0
        public void CreateItem(Guid companyId, Item item)
        {
            Business.Model.Inventorization result = new Business.Model.Inventorization();
            using (var conn = new NpgsqlConnection(_connectionString))
            {
                conn.Open();
                using (var cmd = new NpgsqlCommand())
                {
                    Guid id = Guid.NewGuid();
                    cmd.Connection  = conn;
                    cmd.CommandText = @"INSERT INTO public.""Item""(""CompanyId"", ""Code"", ""Description"", ""CreatedAt"", ""Name"", ""Source"") VALUES(:Company, :Code, :Description, :CreatedAt, :Name, :Source)";
                    cmd.Parameters.Add(new NpgsqlParameter("Company", companyId));
                    cmd.Parameters.Add(new NpgsqlParameter("Name", item.Name));
                    cmd.Parameters.Add(new NpgsqlParameter("Code", item.Code));
                    cmd.Parameters.Add(new NpgsqlParameter("Description", string.IsNullOrWhiteSpace(item.Description) ? string.Empty : item.Description));
                    cmd.Parameters.Add(new NpgsqlParameter("CreatedAt", item.CreatedAt));
                    cmd.Parameters.Add(new NpgsqlParameter("Source", (byte)item.Source));

                    cmd.ExecuteNonQuery();
                }
            }
            _itemsCache.Clear();
        }
Esempio n. 12
0
 public HttpResponseMessage Save([FromBody] Business.Model.Inventorization inventorization)
 {
     _inventorizationRepository.UpdateInventorization(inventorization);
     return(Request.CreateResponse(HttpStatusCode.OK));
 }