Esempio n. 1
0
        public virtual IActionResult Postitem(T item)
        {
            var validationArgs = RepositoryExtensionFactory.CalltoValidate(item, RepositoryExtensionFactory.ApiActionType.Post);

            if (validationArgs.Result != null && !validationArgs.Result.IsValid)
            {
                var errors = validationArgs.Result.Errors;
                return(HttpBadRequest());
            }
            if (validationArgs.Cancel)
            {
                return(HttpBadRequest());
            }
            var validateres = Validate.Validate(item, ModelState, Db);

            if (!validateres.IsValid)
            {
                return(HttpBadRequest(ModelState));
            }
            var args = RepositoryExtensionFactory.CallActionStarting(item, RepositoryExtensionFactory.ApiActionType.Post);

            if (args.Cancel)
            {
                return(HttpBadRequest());
            }
            Repo.Add(item);
            Repo.SaveChanges();
            return(CreatedAtRoute("DefaultApi", null, item));
        }
Esempio n. 2
0
        public virtual IActionResult Getitem(TK id)
        {
            T   item           = Repo.Find(id);
            var validationArgs = RepositoryExtensionFactory.CalltoValidate(item, RepositoryExtensionFactory.ApiActionType.Get);

            if (item == null)
            {
                return(HttpNotFound());
            }
            var args = RepositoryExtensionFactory.CallActionStarting(item, RepositoryExtensionFactory.ApiActionType.Get);

            if (args.Cancel)
            {
                return(HttpBadRequest());
            }
            return(new ObjectResult(item));
        }
Esempio n. 3
0
        public virtual IActionResult Putitem(T item)
        {
            var validationArgs = RepositoryExtensionFactory.CalltoValidate(item, RepositoryExtensionFactory.ApiActionType.Put);

            if (validationArgs.Result != null && !validationArgs.Result.IsValid)
            {
                var errors = validationArgs.Result.Errors;
                return(HttpBadRequest());
            }
            if (validationArgs.Cancel)
            {
                return(HttpBadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(HttpBadRequest(ModelState));
            }

            var args = RepositoryExtensionFactory.CallActionStarting(item, RepositoryExtensionFactory.ApiActionType.Put);

            if (args.Cancel)
            {
                return(HttpBadRequest());
            }

            Repo.Update(item);
            try
            {
                Repo.SaveChanges();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                //logger.WriteError(ex.Message);
                return(HttpNotFound());
            }
            catch (Exception ex)
            {
                //logger.WriteError(ex.Message);
                return(HttpBadRequest());
            }
            return(new HttpStatusCodeResult(201));
        }