public IHttpActionResult DeleteDealContact(int id)
        {
            var userId      = this.User.Identity.GetUserId();
            var userInfo    = _genRepo.Query <ApplicationUser>().Where(a => a.Id == userId).FirstOrDefault();
            var contactInfo = _genRepo.Query <Contact>().Where(c => c.Email == userInfo.Email).FirstOrDefault();

            DealContact dealContactBeingDeleted = _genRepo.Find <DealContact>(id);

            DealContact dealSharer;

            if (contactInfo == null)
            {
                dealSharer = null;
            }
            else
            {
                dealSharer = _genRepo.Query <DealContact>().Where(d => d.ContactId == contactInfo.Id && d.isDealSharer == true && d.DealId == dealContactBeingDeleted.DealId).FirstOrDefault();
            }
            var dealOwner = _genRepo.Query <Deal>().Where(d => d.UserId == userId && d.Id == dealContactBeingDeleted.DealId).FirstOrDefault();

            if ((dealOwner == null && dealSharer == null) || userId == null)
            {
                return(Unauthorized());
            }
            _genRepo.Delete <DealContact>(id);
            _genRepo.SaveChanges();
            return(Ok());
        }
        public IHttpActionResult PostDealContact(DealContact dealContactToAdd)
        {
            var userId      = this.User.Identity.GetUserId();
            var userInfo    = _genRepo.Query <ApplicationUser>().Where(a => a.Id == userId).FirstOrDefault();
            var contactInfo = _genRepo.Query <Contact>().Where(c => c.Email == userInfo.Email).FirstOrDefault();

            var dealOwner = _genRepo.Query <Deal>().Where(d => d.UserId == userId && d.Id == dealContactToAdd.DealId).FirstOrDefault();

            DealContact dealSharer;

            if (contactInfo == null)
            {
                dealSharer = null;
            }
            else
            {
                dealSharer = _genRepo.Query <DealContact>().Where(d => d.ContactId == contactInfo.Id && d.isDealSharer == true && d.DealId == dealContactToAdd.DealId).FirstOrDefault();
            }


            if ((dealOwner == null && dealSharer == null) || userId == null)
            {
                return(Unauthorized());
            }


            if (ModelState.IsValid)
            {
                if (dealContactToAdd.Id == 0)
                {
                    dealContactToAdd.CreatedOn = DateTime.Now;
                    dealContactToAdd.UserId    = userId;
                    _genRepo.Add <DealContact>(dealContactToAdd);
                    _genRepo.SaveChanges();
                    return(Ok());
                }
                else
                {
                    DealContact dealContactBeingEditted = _genRepo.Find <DealContact>(dealContactToAdd.Id);
                    dealContactToAdd.ContactId = dealContactToAdd.ContactId;
                    dealContactToAdd.DealId    = dealContactToAdd.DealId;
                    _genRepo.SaveChanges();
                    return(Ok());
                }
            }
            return(BadRequest(ModelState));
        }