public ICommandResult Execute(CreateOrUpdateMarcaCommand command)
        {
            Marca _Marca = AutoMapper.Mapper.Map <CreateOrUpdateMarcaCommand, Marca>(command);

            if (!MarcaRepository.Exist(p => p.Id == command.Id))
            {
                MarcaRepository.Add(_Marca);
            }
            else
            {
                MarcaRepository.Update(_Marca);
            }
            unitOfWork.Commit();

            AutoMapper.Mapper.Map <Marca, CreateOrUpdateMarcaCommand>(_Marca, command);

            return(new CommandResult(true));
        }
예제 #2
0
 public HttpResponseMessage Post(MarcaModel marca)
 {
     try {
         if (ModelState.IsValid)
         {
             if (!marcaRepository.Exist(p => p.Id == marca.Id))
             {
                 var command = AutoMapper.Mapper.Map <MarcaModel, CreateOrUpdateMarcaCommand>(marca);
                 var result  = commandBus.Submit(command);
                 if (result.Success)
                 {
                     marca = AutoMapper.Mapper.Map <CreateOrUpdateMarcaCommand, MarcaModel>(command);
                     var    response = Request.CreateResponse <MarcaModel>(HttpStatusCode.Created, marca);
                     string uri      = Url.Route(null, new { Id = marca.Id });
                     response.Headers.Location = new Uri(Request.RequestUri, uri);
                     return(response);
                 }
             }
             else
             {
                 return(Request.CreateResponse(HttpStatusCode.BadRequest, "No se puede insertar el registro porque ya existe otro con la misma clave. Por favor, revísela."));
             }
         }
         else
         {
             var errors = new Dictionary <string, IEnumerable <string> >();
             foreach (var keyValue in ModelState)
             {
                 errors[keyValue.Key] = keyValue.Value.Errors.Select(e => (!string.IsNullOrWhiteSpace(e.ErrorMessage) ? e.ErrorMessage : (e.Exception != null ? e.Exception.Message : string.Empty)));
             }
             return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
         }
         throw new HttpResponseException(HttpStatusCode.BadRequest);
     } catch (Exception _excepcion) {
         log.Error(_excepcion);
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, _excepcion));
     }
 }