Ejemplo n.º 1
0
        // HTTP POST - Create
        public async Task<IHttpActionResult> Post(Person person)
        {
            try
            {
                Logger.Instance.Info(string.Format("Start HTTP POST - People(person) is called.\r\nPerson is: {0}", person));

                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }
                await Task.Run(() =>
                {
                    DemoDataSources.Instance.People.Add(person);
                });

                Logger.Instance.Info("Done HTTP POST - People(person)");
                return Created(person);
            }
            catch (Exception e)
            {
                Logger.Instance.Error(string.Format("HTTP POST - People({0})\r\n{1}", person, e.ToString()));
                return BadRequest(e.Message);
            }
            finally
            {
                // nothing else
            }
        }
Ejemplo n.º 2
0
        // HTTP PUT - Update
        public async Task<IHttpActionResult> Put([FromODataUri] string key, Person updatePerson)
        {
            try
            {
                Logger.Instance.Info(string.Format("Start HTTP PUT - People(key, person) is called.\r\nKey is: {0}\r\nPerson is: {1}", key, updatePerson));

                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }

                if (key != updatePerson.ID)
                {
                    return BadRequest();
                }

                try
                {
                    await Task.Run(() =>
                    {
                        Person toBeRemovedPerson = DemoDataSources.Instance.People.Where(p => p.ID == key).First();
                        DemoDataSources.Instance.People.Remove(toBeRemovedPerson);

                        DemoDataSources.Instance.People.Add(updatePerson);
                    });
                }
                catch
                {
                    if (null == DemoDataSources.Instance.People.Where(p => p.ID == key).First())
                    {
                        return NotFound();
                    }
                    else
                    {
                        throw;
                    }
                }

                Logger.Instance.Info("Done HTTP PUT - People(key, person)");
                return Updated(updatePerson);
            }
            catch (Exception e)
            {
                Logger.Instance.Error(string.Format("HTTP PUT - People({0}, {1})\r\n{2}", key, updatePerson, e.ToString()));
                return BadRequest(e.Message);
            }
            finally
            {
                // nothing else
            }
        }