Exemplo n.º 1
0
        public async Task <IHttpActionResult> Register(Account_BenhNhanDTO account)
        {
            var acc = await db.Account_BenhNhan.FirstOrDefaultAsync(q => q.Username == account.MaYTe && q.Status == "ACTIVE");

            if (acc == null)
            {
                var bn = db.SP_DM_BenhNhan_GetByMaYTe(account.MaYTe).FirstOrDefault();
                if (bn != null)
                {
                    if (bn.TenBenhNhan.ToUpper().Equals(account.HoTen.ToUpper()) && bn.NgaySinh?.OnlyDate() == account.NgaySinh.OnlyDate())
                    {
                        var id = db.SP_Account_BenhNhan_Insert(account.Password, account.Email, account.MaYTe).FirstOrDefault();
                        if (id != null)
                        {
                            if (_sendMailConfirm(id.IDAccountBN ?? 0))
                            {
                                return(Ok("Vui lòng xác nhận tài khoản, kiểm tra mail " + account.Email));
                            }
                            return(Content(HttpStatusCode.Created, "Vui lòng xác nhận tài khoản, thử lại gửi mail: " + account.Email));
                        }
                        else
                        {
                            return(BadRequest());
                        }
                    }
                    else
                    {
                        return(Content(HttpStatusCode.NotAcceptable, "Thông tin họ tên và ngày sinh không trùng khớp với Mã Y Tế."));
                    }
                }
                else
                {
                    return(Content(HttpStatusCode.NotAcceptable, "Mã y tế không tồn tại."));
                }
            }
            else
            {
                if (acc.Status == CONFIRM)
                {
                    return(Content(HttpStatusCode.Created, "Vui lòng xác nhận tài khoản với email " + acc.Email));
                }
                else if (acc.Status == ACTIVE)
                {
                    return(Content(HttpStatusCode.NotAcceptable, "Thông tin Mã Y tế đã được sử dụng."));
                }
                return(Content(HttpStatusCode.NotAcceptable, "Tài khoản đã được tạo trước đó."));
            }
        }