Ejemplo n.º 1
0
        public HttpResponseMessage AlterarRack([FromBody] RackModel request)
        {
            if (request == null)
            {
                return(BadRequest($"O parametro {nameof(request)} não pode ser null"));
            }

            Rack rackAntiga = contexto.Racks.FirstOrDefault(x => x.Id == request.Id);

            Rack rackNova = CreateRack(request.QuantidadeGavetas, request.Tensao, request.Descricao);

            if (rackNova.QuantidadeGavetas < rackAntiga.QuantidadeGavetas)
            {
                return(BadRequest("A quantidade máxima de gavetas não pode ser diminuida."));
            }

            if (rackNova.Validar())
            {
                rackAntiga.QuantidadeGavetas = request.QuantidadeGavetas;
                rackAntiga.Descricao         = request.Descricao;
                int quantidadeExtrasSlots = request.QuantidadeGavetas - rackAntiga.QuantidadeGavetas;
                for (var i = 0; i < quantidadeExtrasSlots; i++)
                {
                    contexto.Gavetas.Add(CreateGaveta(rackAntiga, (rackAntiga.QuantidadeGavetas + i + 1)));
                }

                contexto.SaveChanges();

                return(Ok(rackAntiga));
            }

            return(BadRequest(rackNova.Mensagens));
        }
Ejemplo n.º 2
0
        public HttpResponseMessage CadastrarRack([FromBody] RackModel request)
        {
            if (request == null)
            {
                return(BadRequest($"O parametro {nameof(request)} não pode ser null"));
            }

            Slot slot = contexto.Slots.FirstOrDefault(x => x.Id == request.SlotId);

            slot.Ocupado = true;

            if (contexto.Racks.Where(x => x.Slot.Id == slot.Id).Count() != 0)
            {
                return(BadRequest("Já existe um rack neste slot."));
            }

            Rack rack = CreateRack(request.QuantidadeGavetas, request.Tensao, request.Descricao);

            rack.Slot = slot;

            if (rack.Validar())
            {
                for (var i = 0; i < rack.QuantidadeGavetas; i++)
                {
                    contexto.Gavetas.Add(CreateGaveta(rack, i + 1));
                }
                contexto.SaveChanges();

                return(Ok(rack));
            }

            return(BadRequest(rack.Mensagens));
        }
Ejemplo n.º 3
0
        public async Task <HttpResponseMessage> Update(RackModel item)
        {
            if (ModelState.IsValid)
            {
                var session = (Session)ContextOperator.Get(ContextKeys.SESSION_ID);
                item.UpdatedBy = session.UserId;
                await Task.Run(() => { this._rackService.Update(item); });

                return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(true, "Success", null)));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, new ResponseMessage <object>(false, MessageString.INVALID_REQUEST_PARMS, null)));
        }
Ejemplo n.º 4
0
        public void Criar_Rack_Deve_Retornar_Erro_Quando_O_Rack_For_Nulo()
        {
            RackModel rack = null;

            var controller = CriarController();

            controller.Request = new HttpRequestMessage();

            var resposta = controller.CadastrarRack(rack);

            string[] mensagens = (resposta.Content as ObjectContent).Value as string[];

            Assert.IsFalse(resposta.IsSuccessStatusCode);

            Assert.AreEqual("O parametro request não pode ser null", mensagens[0]);
        }
Ejemplo n.º 5
0
        public void Criar_Rack_Deve_Retornar_Erro_Quando_Ja_Existir_Rack_No_Slot()
        {
            RackModel rack = CriarNovaRack1();

            var controller = CriarController();

            controller.Request = new HttpRequestMessage();

            controller.CadastrarRack(rack);

            var resposta = controller.CadastrarRack(rack);

            string[] mensagens = (resposta.Content as ObjectContent).Value as string[];

            Assert.IsFalse(resposta.IsSuccessStatusCode);

            Assert.AreEqual("Já existe um rack neste slot.", mensagens[0]);
        }
Ejemplo n.º 6
0
        public ActionResult SaveRack(RackModel objRack)
        {
            if (ModelState != null)
            {
                if (ModelState.IsValid)
                {
                    tbl_rackInfo objTable = new Models.DB.tbl_rackInfo();
                    objTable.rack_name = objRack.rack_name;
                    objTable.capacity  = objRack.capacity;
                    objTable.remaining = objRack.capacity;

                    objEntity.tbl_rackInfo.Add(objTable);
                    objEntity.SaveChanges();
                }
            }

            return(RedirectToAction("Index", "Rack"));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> PutRack(Guid id, [FromBody] RackModel model)
        {
            var rack = new RackModel()
            {
                Id        = id,
                Name      = model.Name,
                ColumnsId = model.ColumnsId
            };

            try
            {
                _context.Entry(rack).State = EntityState.Modified;
                await _context.SaveChangesAsync();

                return(Ok(rack));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 8
0
        public void Alterar_Rack_Deve_Retornar_Erro_Quando_Dimuir_Quantidade_De_Gavetas()
        {
            RackModel rack = CriarNovaRack1();

            var controller = CriarController();

            controller.Request = new HttpRequestMessage();

            ObjectContent objeto = controller.CadastrarRack(rack).Content as ObjectContent;
            Rack          rackRetornadaNoPost = objeto.Value as Rack;

            rack.Id = rackRetornadaNoPost.Id;
            rack.QuantidadeGavetas = 1;

            var resposta = controller.AlterarRack(rack);

            string[] mensagens = (resposta.Content as ObjectContent).Value as string[];

            Assert.IsFalse(resposta.IsSuccessStatusCode);

            Assert.AreEqual("A quantidade máxima de gavetas não pode ser diminuida.", mensagens[0]);
        }
Ejemplo n.º 9
0
        //POST : /api/Warehouse/rack/post
        public async Task <Object> PostRack(RackModel model)
        {
            var rack = new RackModel()
            {
                Id        = Guid.NewGuid(),
                Name      = model.Name,
                ColumnsId = model.ColumnsId,
            };

            try
            {
                var result = await _context.Rack.AddAsync(rack);

                await _context.SaveChangesAsync();

                return(Ok(rack));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }