// GET api/<controller>/5
 public IHttpActionResult Get(string id)
 {
     try
     {
         Guid g = new Guid(id);
         //UserId = "2303eff9-b95e-4d3c-8397-bf4eaae25c4f";
         using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
         {
             VMRoster vm = VMRoster.GetVmRoster(m.Rosters.Get(g));
             if (vm == null)
             {
                 return(NotFound());
             }
             else
             {
                 return(Ok(vm));
             }
         }
     }
     catch (Exception ex)
     {
         //todo Log Exception
         return(BadRequest(ExceptionExtention.GetAllMessages(ex)));
     }
 }
 public IHttpActionResult GetByEmployer([FromUri] string strEmployerId, [FromUri] string strStartDate, [FromUri] string strEndDate)
 {
     try
     {
         Guid     employerId = new Guid(strEmployerId);
         DateTime startD     = CommonUtils.DateTimeStringToDatetime(strStartDate);
         DateTime endD       = CommonUtils.DateTimeStringToDatetime(strEndDate);
         using (ApplicationDbContext db = new ApplicationDbContext())
         {
             using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
             {
                 var             l  = m.Rosters.GetByEmployer(employerId, startD, endD);
                 List <VMRoster> al = new List <VMRoster>(l.Count());
                 foreach (var r in l)
                 {
                     al.Add(VMRoster.GetVmRoster(r));
                 }
                 return(Ok(al));
             }
         }
     }
     catch (Exception e)
     {
         //ToDo Log exception
         return(BadRequest(ExceptionExtention.GetAllMessages(e)));
     }
 }
 // POST api/<controller>
 public IHttpActionResult Post([FromBody] VMRoster value)
 {
     //UserId = "2303eff9-b95e-4d3c-8397-bf4eaae25c4f";
     try
     {
         Roster r = VMRoster.GetRoster(value, UserId);
         using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
         {
             m.Rosters.Add(r);
             m.Complete();
         }
         return(Created($"/api/Roster/{r.Id}", r));
     }
     catch (Exception e)
     {
         return(BadRequest(ExceptionExtention.GetAllMessages(e)));
         //throw;
     }
 }
        // DELETE api/<controller>/5
        public IHttpActionResult Delete(string id)
        {
            var g = new Guid(id);

            try
            {
                using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
                {
                    Roster rr = m.Rosters.Get(g);
                    rr.Deleted = true;
                    //m.Rosters.Remove(rr);
                    m.Complete();
                }
                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(ExceptionExtention.GetAllMessages(e)));
            }
        }
        // PUT api/<controller>/5
        public IHttpActionResult Put(string id, [FromBody] VMRoster value)
        {
            var g = new Guid(id);

            try
            {
                using (UnitOfWork m = new UnitOfWork(new MMAContext(), new Guid(UserId), UserEmail))
                {
                    Roster ro = m.Rosters.Get(g);
                    ro.Acknowledged       = AcknowledgementType.Unknown;
                    ro.AcknowledgeComment = string.Empty;
                    VMRoster.UpdateRoster(value, ro);
                    m.Complete();
                    VMRoster v = VMRoster.GetVmRoster(ro);
                    return(Ok(v));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(ExceptionExtention.GetAllMessages(e)));
            }
        }