Example #1
0
 public bool DeleteReferenceData(int kick_result_id)
 {
     try
     {
         int             user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);
         PregnancyEntity connect = new PregnancyEntity();
         IEnumerable <preg_kick_result_detail> kickResultDetailDel = connect.preg_kick_result_detail.Where(c => c.kick_result_id == kick_result_id);
         while (kickResultDetailDel.Count() > 0)
         {
             connect.preg_kick_result_detail.Remove(kickResultDetailDel.FirstOrDefault());
             connect.SaveChanges();
         }
         IEnumerable <preg_user_kick_history> userKickHistoryDel = connect.preg_user_kick_history.Where(c => c.user_id == user_id && c.kick_result_id == kick_result_id);
         while (userKickHistoryDel.Count() > 0)
         {
             connect.preg_user_kick_history.Remove(userKickHistoryDel.FirstOrDefault());
             connect.SaveChanges();
         }
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Example #2
0
 public HttpResponseMessage Post([FromBody] preg_kick_result data)
 {
     try
     {
         if (!data.DeepEquals(new preg_kick_result()))
         {
             dao.InsertData(data);
             //Insert to UserKickHistories
             int user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);
             preg_user_kick_history userKickHistory = new preg_user_kick_history()
             {
                 user_id = user_id, kick_result_id = data.id
             };
             using (PregnancyEntity connect = new PregnancyEntity())
             {
                 connect.preg_user_kick_history.Add(userKickHistory);
                 connect.SaveChanges();
             }
             return(Request.CreateResponse(HttpStatusCode.Created, data));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
     }
 }
Example #3
0
        public HttpResponseMessage Delete(string id)
        {
            try
            {
                //Delete reference
                using (PregnancyEntity connect = new PregnancyEntity())
                {
                    preg_kick_result item = dao.GetItemByID(Convert.ToInt32(id)).FirstOrDefault();
                    if (item == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                    }
                    if (!DeleteReferenceData(Convert.ToInt32(id)))
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_DELETE_FAIL));
                    }

                    dao.DeleteData(item);
                    return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_DELETE_SUCCESS));
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
 public HttpResponseMessage Post([FromBody] preg_profession data)
 {
     try
     {
         if (data.user_id != 0 && data.profession_type_id != 0)
         {
             //Check user & profession type exist
             using (PregnancyEntity connect = new PregnancyEntity())
             {
                 preg_user            checkUserExist  = connect.preg_user.Where(c => c.id == data.user_id).FirstOrDefault();
                 preg_profession_type checkPTypeExist = connect.preg_profession_type.Where(c => c.id == data.profession_type_id).FirstOrDefault();
                 if (checkUserExist == null || checkPTypeExist == null)
                 {
                     return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                 }
             }
             dao.InsertData(data);
             return(Request.CreateResponse(HttpStatusCode.Created, SysConst.DATA_INSERT_SUCCESS));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
     }
 }
        public HttpResponseMessage Post([FromBody] preg_user_shopping_cart data)
        {
            try
            {
                int user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);
                if (data.shopping_item_id != 0)
                {
                    data.user_id = user_id;

                    //Check exist
                    preg_user_shopping_cart checkExist = dao.GetItemByParams(new preg_user_shopping_cart()
                    {
                        user_id = user_id, shopping_item_id = data.shopping_item_id
                    }).FirstOrDefault();
                    if (checkExist != null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_EXIST));
                    }

                    //Check Shopping Item Exist
                    using (PregnancyEntity connect = new PregnancyEntity())
                    {
                        preg_shopping_item checkShoppingItemExist = connect.preg_shopping_item.Where(c => c.id == data.shopping_item_id).FirstOrDefault();
                        if (checkShoppingItemExist == null)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                        }
                    }

                    if (dao.InsertData(data))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Created, SysConst.DATA_INSERT_SUCCESS));
                    }
                    else
                    {
                        HttpError err = new HttpError(SysConst.DATA_EXIST);
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                    }
                }
                else
                {
                    HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
        public HttpResponseMessage Post([FromBody] preg_medical_package_test data)
        {
            try
            {
                if (data.medical_service_package_id != 0 && data.medical_test_id != 0)
                {
                    //Check exist
                    preg_medical_package_test checkExist = dao.GetItemByID(data.medical_service_package_id, data.medical_test_id).FirstOrDefault();
                    if (checkExist != null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_EXIST));
                    }

                    //check medical service package & medical test exist
                    using (PregnancyEntity connect = new PregnancyEntity())
                    {
                        preg_medical_service_package checkMedicalPackageExist = connect.preg_medical_service_package.Where(c => c.id == data.medical_service_package_id).FirstOrDefault();
                        preg_medical_test            checkMedicalTestExist    = connect.preg_medical_test.Where(c => c.id == data.medical_test_id).FirstOrDefault();
                        if (checkMedicalPackageExist == null || checkMedicalTestExist == null)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                        }
                    }

                    if (dao.InsertData(data))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Created, SysConst.DATA_INSERT_SUCCESS));
                    }
                    else
                    {
                        HttpError err = new HttpError(SysConst.DATA_EXIST);
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                    }
                }
                else
                {
                    HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
        public HttpResponseMessage Post([FromBody] preg_guides data)
        {
            try
            {
                if (data.page_id != 0 && data.guides_type_id != 0)
                {
                    //Check exist
                    preg_guides checkExist = dao.GetItemsByParams(new preg_guides()
                    {
                        page_id = data.page_id, guides_type_id = data.guides_type_id
                    }).FirstOrDefault();
                    if (checkExist != null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_EXIST));
                    }

                    //Check page & guide type exist
                    using (PregnancyEntity connect = new PregnancyEntity())
                    {
                        preg_page        checkPageExist      = connect.preg_page.Where(c => c.id == data.page_id).FirstOrDefault();
                        preg_guides_type checkGuideTypeExist = connect.preg_guides_type.Where(c => c.id == data.guides_type_id).FirstOrDefault();
                        if (checkPageExist == null || checkGuideTypeExist == null)
                        {
                            return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                        }
                    }
                    dao.InsertData(data);
                    return(Request.CreateResponse(HttpStatusCode.Created, SysConst.DATA_INSERT_SUCCESS));
                }
                else
                {
                    HttpError err = new HttpError(SysConst.DATA_NOT_EMPTY);
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                }
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
        public HttpResponseMessage DeleteAll()
        {
            try
            {
                PregnancyEntity         connect = new PregnancyEntity();
                IEnumerable <preg_user> users   = connect.preg_user;
                bool       chkFlag = true;
                List <int> listID  = new List <int>();
                foreach (preg_user user in users)
                {
                    int id = user.id;
                    listID.Add(id);
                }
                foreach (int id in listID)
                {
                    if (id == 4 || id == 409 || id == 130)
                    {
                        continue;
                    }
                    if (!DeleteReferenceData(Convert.ToInt32(id)))
                    {
                        chkFlag = false;
                    }

                    dao.DeleteData(Convert.ToInt32(id));
                }
                if (!chkFlag)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_DELETE_FAIL));
                }
                return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_DELETE_SUCCESS));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_DELETE_FAIL));
            }
        }
        public HttpResponseMessage DeleteAll()
        {
            try
            {
                PregnancyEntity connect = new PregnancyEntity();
                int             user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);
                IQueryable <preg_user_kick_history> items = dao.GetListItem().Where(c => c.user_id == user_id);
                if (!items.Any())
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                }

                while (items.Count() > 0)
                {
                    int kickResultId = items.FirstOrDefault().kick_result_id;
                    IQueryable <preg_kick_result_detail> kickResultDetailItem = connect.preg_kick_result_detail.Where(c => c.kick_result_id == kickResultId);
                    while (kickResultDetailItem.Count() > 0)
                    {
                        connect.preg_kick_result_detail.Remove(kickResultDetailItem.FirstOrDefault());
                        connect.SaveChanges();
                    }
                    dao.DeleteData(items.FirstOrDefault());
                    IQueryable <preg_kick_result> kickResultItem = connect.preg_kick_result.Where(c => c.id == kickResultId);
                    while (kickResultItem.Count() > 0)
                    {
                        connect.preg_kick_result.Remove(kickResultItem.FirstOrDefault());
                        connect.SaveChanges();
                    }
                }
                return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_DELETE_SUCCESS));
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
Example #10
0
        public bool DeleteReferenceData(int user_id)
        {
            try
            {
                PregnancyEntity connect = new PregnancyEntity();
                preg_user       user    = connect.preg_user.Where(c => c.id == user_id).FirstOrDefault();

                while (user.preg_answer.Count() > 0)
                {
                    connect.preg_answer.Remove(user.preg_answer.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_appointment.Count() > 0)
                {
                    preg_appointment appointment = user.preg_appointment.FirstOrDefault();
                    while (appointment.preg_appointment_measurement.Count() > 0)
                    {
                        connect.preg_appointment_measurement.Remove(appointment.preg_appointment_measurement.FirstOrDefault());
                        connect.SaveChanges();
                    }
                    connect.preg_appointment.Remove(user.preg_appointment.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_auth.Count() > 0)
                {
                    connect.preg_auth.Remove(user.preg_auth.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_contact_us.Count() > 0)
                {
                    connect.preg_contact_us.Remove(user.preg_contact_us.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_contraction.Count() > 0)
                {
                    connect.preg_contraction.Remove(user.preg_contraction.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_customer_response.Count() > 0)
                {
                    connect.preg_customer_response.Remove(user.preg_customer_response.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_customer_response1.Count() > 0)
                {
                    connect.preg_customer_response.Remove(user.preg_customer_response1.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_daily_interact.Count() > 0)
                {
                    connect.preg_daily_interact.Remove(user.preg_daily_interact.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_my_birth_plan.Count() > 0)
                {
                    connect.preg_my_birth_plan.Remove(user.preg_my_birth_plan.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_my_birth_plan_item.Count() > 0)
                {
                    connect.preg_my_birth_plan_item.Remove(user.preg_my_birth_plan_item.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_my_weight.Count() > 0)
                {
                    connect.preg_my_weight.Remove(user.preg_my_weight.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_phone.Count() > 0)
                {
                    connect.preg_phone.Remove(user.preg_phone.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_pregnancy.Count() > 0)
                {
                    connect.preg_pregnancy.Remove(user.preg_pregnancy.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_profession.Count() > 0)
                {
                    connect.preg_profession.Remove(user.preg_profession.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_question.Count() > 0)
                {
                    connect.preg_question.Remove(user.preg_question.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_setting.Count() > 0)
                {
                    connect.preg_setting.Remove(user.preg_setting.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_upgrade.Count() > 0)
                {
                    connect.preg_upgrade.Remove(user.preg_upgrade.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_weekly_interact.Count() > 0)
                {
                    connect.preg_weekly_interact.Remove(user.preg_weekly_interact.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_baby_name.Count() > 0)
                {
                    connect.preg_user_baby_name.Remove(user.preg_user_baby_name.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_hospital_bag_item.Count() > 0)
                {
                    connect.preg_user_hospital_bag_item.Remove(user.preg_user_hospital_bag_item.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_hospital_bag_item.Count() > 0)
                {
                    connect.preg_hospital_bag_item.Remove(user.preg_hospital_bag_item.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_my_belly.Count() > 0)
                {
                    connect.preg_my_belly.Remove(user.preg_my_belly.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_kick_history.Count() > 0)
                {
                    connect.preg_user_kick_history.Remove(user.preg_user_kick_history.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_medical_service_package.Count() > 0)
                {
                    connect.preg_user_medical_service_package.Remove(user.preg_user_medical_service_package.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_shopping_cart.Count() > 0)
                {
                    connect.preg_user_shopping_cart.Remove(user.preg_user_shopping_cart.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_shopping_item.Count() > 0)
                {
                    connect.preg_shopping_item.Remove(user.preg_shopping_item.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_user_todo.Count() > 0)
                {
                    connect.preg_user_todo.Remove(user.preg_user_todo.FirstOrDefault());
                    connect.SaveChanges();
                }
                while (user.preg_todo.Count() > 0)
                {
                    connect.preg_todo.Remove(user.preg_todo.FirstOrDefault());
                    connect.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
 public HelpCategoryDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #12
0
 public MyBirthPlanItemDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #13
0
 public MyWeightUnitDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #14
0
 public UserDao()
 {
     connect = new PregnancyEntity();
 }
Example #15
0
 public UserShoppingCartDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #16
0
 public CustomerResponseDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
        public async Task <HttpResponseMessage> UploadRoot(int month)
        {
            string dir     = "/Files/MyBellies/" + month.ToString();
            string dirRoot = HttpContext.Current.Server.MapPath(dir);

            // Check if request contains multipart/form-data
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            // Check if directory folder created
            if (!Directory.Exists(dirRoot))
            {
                Directory.CreateDirectory(dirRoot);
            }
            // Check if image and html filetype
            for (int i = 0; i < HttpContext.Current.Request.Files.Count; i++)
            {
                HttpPostedFile file = HttpContext.Current.Request.Files[i];
                if (!SysConst.imgOnlyExtensions.Any(x => x.Equals(Path.GetExtension(file.FileName.ToLower()), StringComparison.OrdinalIgnoreCase)))
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.INVALID_FILE_TYPE));
                }
                else if (File.Exists(dirRoot + "/" + file.FileName))
                {
                    File.Delete(dirRoot + "/" + file.FileName);
                }
            }

            CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(dirRoot);

            List <string> files = new List <string>();

            try
            {
                // Read all contents of multipart message into CustomMultipartFormDataStreamProvider.
                await Request.Content.ReadAsMultipartAsync(provider);

                // Update to database
                preg_my_belly updateRow = new preg_my_belly();
                updateRow.month   = month;
                updateRow.user_id = null;
                using (PregnancyEntity connect = new PregnancyEntity())
                {
                    preg_my_belly chkRowExist = connect.preg_my_belly.Where(c => c.month == month).FirstOrDefault();
                    if (chkRowExist == null)
                    {
                        dao.InsertData(updateRow);
                    }
                }

                updateRow = dao.GetItemsByParams(updateRow).FirstOrDefault();
                foreach (MultipartFileData file in provider.FileData)
                {
                    string path = dir + "/" + HttpUtility.UrlPathEncode(Path.GetFileName(file.LocalFileName));
                    files.Add(path);
                    updateRow.image = path;
                }
                dao.UpdateData(updateRow);
                //UpdateData(updateRow.id, updateRow.month.ToString(), updateRow);
                return(Request.CreateResponse(HttpStatusCode.Created, files));
            }
            catch (System.Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
            }
        }
Example #18
0
        /// <summary>
        /// Validate provided username and password when the grant_type is set to "password".
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            if (context.OwinContext.Request.Headers["Provider"] != null)
            {
                if (context.OwinContext.Request.Headers["Provider"].ToLower() == "facebook" && context.OwinContext.Request.Headers["access_token"] != null)
                {
                    var accessToken = context.OwinContext.Request.Headers["access_token"];
                    var client      = new RestClient("https://graph.facebook.com/");
                    var request     = new RestRequest("me", Method.GET);
                    request.AddQueryParameter("fields", "id,name,email,picture.width(2000).height(2000)");
                    request.AddQueryParameter("access_token", accessToken);
                    var response = client.Execute(request);
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        var content  = JObject.Parse(response.Content);
                        var userInfo = new FacebookUserInfo()
                        {
                            id = content["id"].ToString()
                        };
                        if (content["name"] != null)
                        {
                            userInfo.name = content["name"].ToString();
                        }
                        if (content["email"] != null)
                        {
                            userInfo.email = content["email"].ToString();
                        }
                        if (content["picture"]["data"]["url"] != null)
                        {
                            userInfo.avatar = content["picture"]["data"]["url"].ToString();
                        }
                        PregnancyEntity connect = new PregnancyEntity();
                        preg_user       user    = connect.preg_user.Where(c => c.uid == userInfo.id && c.social_type_id == (int)SysConst.SocialTypes.facebook).FirstOrDefault();
                        if (user != null)
                        {
                            //user.email = userInfo.email;
                            //user.first_name = userInfo.name;
                            user.time_last_login = DateTime.Now;
                            connect.SaveChanges();
                        }
                        else
                        {
                            user                = new preg_user();
                            user.uid            = userInfo.id;
                            user.email          = userInfo.email;
                            user.first_name     = userInfo.name;
                            user.avatar         = userInfo.avatar;
                            user.social_type_id = (int)SysConst.SocialTypes.facebook;
                            user.time_created   = DateTime.Now;
                            connect.preg_user.Add(user);
                            SysMethod.createAccountNop(user);
                            connect.SaveChanges();
                            user = connect.preg_user.Where(c => c.uid == userInfo.id && c.social_type_id == (int)SysConst.SocialTypes.facebook).FirstOrDefault();
                        }
                        preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault();
                        if (auth == null)
                        {
                            auth = new preg_auth()
                            {
                                user_id = user.id
                            };
                            connect.preg_auth.Add(auth);
                        }
                        auth.token = context.OwinContext.Request.Headers["access_token"];
                        connect.SaveChanges();

                        var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString()));
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString()));
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString()));
                        identity.AddClaim(new Claim("id", user.id.ToString()));
                        context.Validated(identity);
                    }
                    else
                    {
                        context.SetError("Invalid grant", SysConst.LOGIN_SOCIAL_FAILED);
                        return;
                    }
                }
                else if (context.OwinContext.Request.Headers["Provider"].ToLower() == "google" && context.OwinContext.Request.Headers["access_token"] != null)
                {
                    var accessToken = context.OwinContext.Request.Headers["access_token"];
                    var client      = new RestClient("https://www.googleapis.com/oauth2/v3/");
                    var request     = new RestRequest("tokeninfo", Method.GET);
                    request.AddQueryParameter("id_token", accessToken);
                    var response = client.Execute(request);
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        var content  = JObject.Parse(response.Content);
                        var userInfo = new GoogleUserInfo()
                        {
                            sub = content["sub"].ToString()
                        };
                        if (content["name"] != null)
                        {
                            userInfo.name = content["name"].ToString();
                        }
                        if (content["email"] != null)
                        {
                            userInfo.email = content["email"].ToString();
                        }
                        if (content["picture"] != null)
                        {
                            userInfo.picture = content["picture"].ToString();
                        }
                        if (content["given_name"] != null)
                        {
                            userInfo.given_name = content["given_name"].ToString();
                        }
                        if (content["family_name"] != null)
                        {
                            userInfo.family_name = content["family_name"].ToString();
                        }
                        PregnancyEntity connect = new PregnancyEntity();
                        preg_user       user    = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault();
                        if (user != null)
                        {
                            //user.email = userInfo.email;
                            //user.first_name = userInfo.name;
                            //user.avatar = userInfo.picture;
                            user.time_last_login = DateTime.Now;
                            connect.SaveChanges();
                        }
                        else
                        {
                            user                = new preg_user();
                            user.uid            = userInfo.sub;
                            user.email          = userInfo.email;
                            user.first_name     = userInfo.name;
                            user.avatar         = userInfo.picture;
                            user.social_type_id = (int)SysConst.SocialTypes.google;
                            user.time_created   = DateTime.Now;
                            connect.preg_user.Add(user);
                            SysMethod.createAccountNop(user);
                            connect.SaveChanges();
                            user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault();
                        }
                        preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault();
                        if (auth == null)
                        {
                            auth = new preg_auth()
                            {
                                user_id = user.id
                            };
                            connect.preg_auth.Add(auth);
                        }
                        auth.token = context.OwinContext.Request.Headers["access_token"];
                        connect.SaveChanges();

                        var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString()));
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString()));
                        identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString()));
                        identity.AddClaim(new Claim("id", user.id.ToString()));
                        context.Validated(identity);
                    }
                    else
                    {
                        var client2  = new RestClient("https://www.googleapis.com/oauth2/v1/");
                        var request2 = new RestRequest("userinfo", Method.GET);
                        request2.AddQueryParameter("alt", "json");
                        request2.AddQueryParameter("access_token", accessToken);
                        var response2 = client.Execute(request2);
                        if (response2.StatusCode == HttpStatusCode.OK)
                        {
                            var content  = JObject.Parse(response2.Content);
                            var userInfo = new GoogleUserInfo()
                            {
                                sub = content["sub"].ToString()
                            };
                            if (content["name"] != null)
                            {
                                userInfo.name = content["name"].ToString();
                            }
                            if (content["email"] != null)
                            {
                                userInfo.email = content["email"].ToString();
                            }
                            if (content["picture"] != null)
                            {
                                userInfo.picture = content["picture"].ToString();
                            }
                            if (content["given_name"] != null)
                            {
                                userInfo.given_name = content["given_name"].ToString();
                            }
                            if (content["family_name"] != null)
                            {
                                userInfo.family_name = content["family_name"].ToString();
                            }
                            PregnancyEntity connect = new PregnancyEntity();
                            preg_user       user    = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault();
                            if (user != null)
                            {
                                //user.email = userInfo.email;
                                //user.first_name = userInfo.name;
                                //user.avatar = userInfo.picture;
                                user.time_last_login = DateTime.Now;
                                connect.SaveChanges();
                            }
                            else
                            {
                                user                = new preg_user();
                                user.uid            = userInfo.sub;
                                user.email          = userInfo.email;
                                user.first_name     = userInfo.name;
                                user.avatar         = userInfo.picture;
                                user.social_type_id = (int)SysConst.SocialTypes.google;
                                user.time_created   = DateTime.Now;
                                connect.preg_user.Add(user);
                                SysMethod.createAccountNop(user);
                                connect.SaveChanges();
                                user = connect.preg_user.Where(c => c.uid == userInfo.sub && c.social_type_id == (int)SysConst.SocialTypes.google).FirstOrDefault();
                            }
                            preg_auth auth = connect.preg_auth.Where(c => c.user_id == user.id).FirstOrDefault();
                            if (auth == null)
                            {
                                auth = new preg_auth()
                                {
                                    user_id = user.id
                                };
                                connect.preg_auth.Add(auth);
                            }
                            auth.token = context.OwinContext.Request.Headers["access_token"];
                            connect.SaveChanges();

                            var identity = new ClaimsIdentity(context.Options.AuthenticationType);
                            identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.social.ToString()));
                            identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString()));
                            identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString()));
                            identity.AddClaim(new Claim("id", user.id.ToString()));
                            context.Validated(identity);
                        }
                        else
                        {
                            context.SetError("Invalid grant", SysConst.LOGIN_SOCIAL_FAILED);
                            return;
                        }
                    }
                }
            }
            else if (context.UserName != null && context.Password != null)
            {
                var             identity = new ClaimsIdentity(context.Options.AuthenticationType);
                PregnancyEntity connect  = new PregnancyEntity();
                UserDao         dao      = new UserDao();
                //Check username & password
                string    phone    = context.UserName;
                string    password = SysMethod.MD5Hash(context.Password);
                preg_user user     = connect.preg_user.Where(c => c.phone == phone && c.password == password).FirstOrDefault();

                if (user != null)
                {
                    user.time_last_login = DateTime.Now;
                    connect.SaveChanges();
                    identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.dev.ToString()));
                    identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.user.ToString()));
                    identity.AddClaim(new Claim("id", user.id.ToString()));
                    context.Validated(identity);
                }
                else if (context.UserName == "WSPadmin" && context.Password == "WSPadmin")
                {
                    identity.AddClaim(new Claim(ClaimTypes.Role, SysConst.UserType.admin.ToString()));
                    identity.AddClaim(new Claim("id", "0"));
                    context.Validated(identity);
                }
                else
                {
                    context.SetError("Invalid grant", SysConst.LOGIN_FAILED);
                    return;
                }
            }
        }
Example #19
0
 public UserKickHistoryDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
 public AppointmentTypeDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #21
0
 public WeeklyInteractDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #22
0
 public AuthDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #23
0
 public HospitalBagItemDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #24
0
 public KickResultDetailDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
 public MedicalServicePackageDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
 public UserBabyNameDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }
Example #27
0
 public ProfessionTypeDao()
 {
     connect = new PregnancyEntity();
     connect.Configuration.ProxyCreationEnabled = false;
 }