public async Task <IHttpActionResult> PostKYCDocument(KYCDocument kYCDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = User.Identity.Name;

            kYCDocument.Date       = DateTime.Now;
            kYCDocument.DateString = DateTime.Now.ToLongDateString();
            var reg = db.Registrations.SingleOrDefault(t => t.UserName.ToUpper() == user.ToUpper());

            kYCDocument.RegistrationId = reg.Id;
            kYCDocument.isApproved     = false;

            kYCDocument.Comment = "";
            db.KYCDocuments.Add(kYCDocument);
            await db.SaveChangesAsync();

            if (kYCDocument.LibraryId > 0)
            {
                var lib = db.LibraryDocuments.Where(l => l.Id == kYCDocument.LibraryId).FirstOrDefault();
                lib.ModuleId = (int)kYCDocument.Id;
                await db.SaveChangesAsync();
            }

            return(CreatedAtRoute("DefaultApi", new { id = kYCDocument.Id }, kYCDocument));
        }
        public async Task <IHttpActionResult> PutKYCDocument(long id, KYCDocument kYCDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != kYCDocument.Id)
            {
                return(BadRequest());
            }

            db.Entry(kYCDocument).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!KYCDocumentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IHttpActionResult> GetKYCDocument(long id)
        {
            KYCDocument kYCDocument = await db.KYCDocuments.FindAsync(id);

            if (kYCDocument == null)
            {
                return(NotFound());
            }

            return(Ok(kYCDocument));
        }
        public async Task <IHttpActionResult> DeleteKYCDocument(long id)
        {
            KYCDocument kYCDocument = await db.KYCDocuments.FindAsync(id);

            if (kYCDocument == null)
            {
                return(NotFound());
            }

            db.KYCDocuments.Remove(kYCDocument);
            await db.SaveChangesAsync();

            return(Ok(kYCDocument));
        }