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)); } }
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); }
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); }
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)); }
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(); } } }
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); }
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(); }
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(); }
public HttpResponseMessage Save([FromBody] Business.Model.Inventorization inventorization) { _inventorizationRepository.UpdateInventorization(inventorization); return(Request.CreateResponse(HttpStatusCode.OK)); }