public HttpResponseMessage CreateGuestAccount()
 {
     try
     {
         preg_user newGuestAccount = new preg_user();
         preg_user checkExist      = new preg_user();
         while (checkExist != null)
         {
             newGuestAccount = RandomGuestAccount();
             //Check account exist
             checkExist = dao.GetListUser().Where(c => c.phone == newGuestAccount.phone).FirstOrDefault();
         }
         string password = newGuestAccount.password;
         newGuestAccount.password       = SysMethod.MD5Hash(newGuestAccount.password);
         newGuestAccount.time_created   = DateTime.Now;
         newGuestAccount.social_type_id = null;
         newGuestAccount.uid            = null;
         if (dao.InsertData(newGuestAccount))
         {
             SysMethod.createAccountNop(newGuestAccount);
             return(Request.CreateResponse(HttpStatusCode.Created, new { newGuestAccount.phone, password }));
         }
         else
         {
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.DATA_INSERT_FAIL));
         }
     }
     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 ForgotPassword(string phone, [FromBody] preg_user passwordUpdate)
        {
            try
            {
                preg_user user = new preg_user()
                {
                    phone = phone
                };
                user = dao.GetUsersByParams(user).FirstOrDefault();
                if (user == null)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                }
                if (passwordUpdate.password.Length < 6)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.PASSWORD_LENGTH));
                }

                string strPass = passwordUpdate.password;

                user.password = SysMethod.MD5Hash(strPass);

                dao.UpdateData(user);
                return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_UPDATE_SUCCESS));
            }
            catch (Exception ex)
            {
                HttpError err = new HttpError(ex.Message);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
            }
        }
Beispiel #4
0
        public void DeleteData(int id)
        {
            preg_user user = connect.preg_user.Where(c => c.id == id).FirstOrDefault();

            connect.preg_user.Remove(user);
            connect.SaveChanges();
        }
 public HttpResponseMessage CheckPhone([FromUri] preg_user data)
 {
     try
     {
         if (data.phone != null)
         {
             preg_user dataCheck = new preg_user()
             {
                 phone = data.phone
             };
             dataCheck = dao.GetUsersByParams(dataCheck).FirstOrDefault();
             if (dataCheck == null)
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
             }
             return(Request.CreateResponse(HttpStatusCode.OK, SysConst.DATA_EXIST));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
     }
 }
Beispiel #6
0
        public HttpResponseMessage UpdateData(string user_id, [FromBody] preg_user dataUpdate)
        {
            try
            {
                if (!dataUpdate.DeepEquals(new preg_user()))
                {
                    preg_user user = new preg_user();
                    user = userdao.GetUserByID(Convert.ToInt32(user_id)).FirstOrDefault();
                    if (user == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.NotFound, SysConst.DATA_NOT_FOUND));
                    }
                    if (dataUpdate.password != null)
                    {
                        user.password = SysMethod.MD5Hash(dataUpdate.password);
                    }
                    if (dataUpdate.email != null)
                    {
                        user.email = dataUpdate.email;
                    }
                    if (dataUpdate.first_name != null)
                    {
                        user.first_name = dataUpdate.first_name;
                    }
                    if (dataUpdate.last_name != null)
                    {
                        user.last_name = dataUpdate.last_name;
                    }
                    if (dataUpdate.you_are_the != null)
                    {
                        user.you_are_the = dataUpdate.you_are_the;
                    }
                    if (dataUpdate.location != null)
                    {
                        user.location = dataUpdate.location;
                    }
                    if (dataUpdate.status != null)
                    {
                        user.status = dataUpdate.status;
                    }
                    if (dataUpdate.avatar != null)
                    {
                        user.avatar = dataUpdate.avatar;
                    }

                    userdao.UpdateData(user);
                    return(Request.CreateResponse(HttpStatusCode.Accepted, SysConst.DATA_UPDATE_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));
            }
        }
Beispiel #7
0
        public void DeleteData(int id)
        {
            preg_user user = GetUserByID(id);

            connect.preg_users.Remove(user);
            connect.SaveChanges();
        }
Beispiel #8
0
 // POST api/values
 public void Post([FromBody] preg_user user)
 {
     try{
         user.password = MD5Hash(user.password);
         dao.InsertData(user);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #9
0
    public static bool createAccountNop(preg_user user)
    {
        try
        {
            UserDao dao = new UserDao();
            //user = dao.GetUserByID(user.id).FirstOrDefault();
            var client  = new RestClient("http://1.55.17.233:6868/");
            var request = new RestRequest("api/customers", Method.POST);
            request.AddHeader("Authorization", "Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1NTA2NjE1MDAsImV4cCI6MTg2NjAyMTUwMCwiaXNzIjoiaHR0cDovLzEuNTUuMTcuMjMzOjY4NjgiLCJhdWQiOlsiaHR0cDovLzEuNTUuMTcuMjMzOjY4NjgvcmVzb3VyY2VzIiwibm9wX2FwaSJdLCJjbGllbnRfaWQiOiIyOGZkNmQ2ZS1kMDcwLTQ3OTQtYTM5NC05YTE0ZmQ5ZTQ1YzYiLCJzdWIiOiIyOGZkNmQ2ZS1kMDcwLTQ3OTQtYTM5NC05YTE0ZmQ5ZTQ1YzYiLCJhdXRoX3RpbWUiOjE1NTA2NjE0OTksImlkcCI6ImxvY2FsIiwic2NvcGUiOlsibm9wX2FwaSIsIm9mZmxpbmVfYWNjZXNzIl0sImFtciI6WyJwd2QiXX0.QJN2fosQbGYJE7ZwhHS1d9Y2_cgISMQs9B-gdG38i3NLVC-xEtDOoltw-_1tcpq5b2zSAYKynnMGdw-R5fWdPuj47iArUK6zoNGyrxj9HuAp9YmGTzXnRgI8sGbdLUzB4OS1__FKuN5lT8vfQtiCi1wr94ypj_RK9ECRSYokkwBzQfgAivkl-bIm2WKrSLhA3V7dcLdB9q6CDtUnIMqagRD6CdNDyG2pqUWQg8srCg5HwfCXY1x8-OwWwjFDjEapUPRCPFiWArcr6m23kBtY11SqhK5izRsONDYe2f5lOtr_yroJgmt5vc-e__e9N2vkj2GORAxfvWJntRI7viZjGQ");

            string defaultPassword = "******";
            if (user.uid != null)
            {
                if (user.social_type_id == (int)SysConst.SocialTypes.facebook)
                {
                    request.AddParameter("undefined", "{\"customer\":{\"password\":\"" + defaultPassword + "\",\"email\":\"facebook_" + user.uid + "\",\"role_ids\":[3]}}", ParameterType.RequestBody);
                }
                else if (user.social_type_id == (int)SysConst.SocialTypes.google)
                {
                    request.AddParameter("undefined", "{\"customer\":{\"password\":\"" + defaultPassword + "\",\"email\":\"google_" + user.uid + "\",\"role_ids\":[3]}}", ParameterType.RequestBody);
                }
            }
            else
            {
                request.AddParameter("undefined", "{\"customer\":{\"password\":\"" + defaultPassword + "\",\"email\":\"" + user.phone + "\",\"role_ids\":[3]}}", ParameterType.RequestBody);
            }

            var response = client.Execute(request);
            if (response.StatusCode == HttpStatusCode.OK)
            {
                var content = JObject.Parse(response.Content.ToString());
                int newId   = Convert.ToInt32(JObject.Parse(response.Content)["customers"][0]["id"]);

                int id;
                if (content["customers"][0] != null)
                {
                    id = Convert.ToInt32(content["customers"][0]["id"]);
                    user.nopcustomer_id = id;
                    dao.UpdateData(user);
                }
            }
            return(true);
        }
        catch (Exception)
        {
            return(false);
        }
    }
 public HttpResponseMessage Get([FromUri] preg_user data)
 {
     try
     {
         if (!data.DeepEquals(new preg_user()) && data.password == null)
         {
             IEnumerable <preg_user> results = dao.GetUsersByParams(data);
             if (results.Count() > 0)
             {
                 foreach (var result in results)
                 {
                     result.password = null;
                 }
                 return(Request.CreateResponse(HttpStatusCode.OK, results));
             }
             else
             {
                 HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
             }
         }
         else
         {
             IEnumerable <preg_user> results = dao.GetListUser();
             if (results.Count() > 0)
             {
                 foreach (var result in results)
                 {
                     result.password = null;
                 }
                 return(Request.CreateResponse(HttpStatusCode.OK, results));
             }
             else
             {
                 HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
                 return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
             }
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
     }
 }
Beispiel #11
0
        public bool InsertData(preg_user item)
        {
            IEnumerable <preg_user> result = GetUsersByParams(new preg_user()
            {
                phone = item.phone, social_type_id = item.social_type_id
            });

            if (result.Count() > 0)
            {
                return(false);
            }
            else
            {
                connect.preg_user.Add(item);
                connect.SaveChanges();
                return(true);
            }
        }
 public HttpResponseMessage Post([FromBody] preg_user data)
 {
     try
     {
         if (data.phone != null && data.password != null)
         {
             if (data.password.Length >= 6)
             {
                 data.password       = SysMethod.MD5Hash(data.password);
                 data.time_created   = DateTime.Now;
                 data.social_type_id = null;
                 data.uid            = null;
                 if (dao.InsertData(data))
                 {
                     SysMethod.createAccountNop(data);
                     dao.UpdateData(data);
                     data.password = null;
                     return(Request.CreateResponse(HttpStatusCode.Created, data));
                 }
                 else
                 {
                     HttpError err = new HttpError(SysConst.PHONE_EXIST);
                     return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
                 }
             }
             else
             {
                 return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, SysConst.PASSWORD_LENGTH));
             }
         }
         else
         {
             HttpError err = new HttpError(SysConst.PHONE_PASSWORD_NOT_NULL);
             return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, err));
     }
 }
 public HttpResponseMessage Get(string id)
 {
     try
     {
         preg_user data = dao.GetUserByID(Convert.ToInt32(id)).FirstOrDefault();
         if (data != null)
         {
             data.password = null;
             return(Request.CreateResponse(HttpStatusCode.OK, data));
         }
         else
         {
             HttpError err = new HttpError(SysConst.DATA_NOT_FOUND);
             return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
         }
     }
     catch (Exception ex)
     {
         HttpError err = new HttpError(ex.Message);
         return(Request.CreateErrorResponse(HttpStatusCode.NotFound, err));
     }
 }
Beispiel #14
0
 // PUT api/values/5
 public void Put(int id, [FromBody] preg_user userUpdate)
 {
     //lstStrings[id] = value;
     try
     {
         preg_user user = new preg_user();
         user             = dao.GetUserByID(id);
         user.avarta      = userUpdate.avarta;
         user.password    = MD5Hash(userUpdate.password);
         user.phone       = userUpdate.phone;
         user.social_type = userUpdate.social_type;
         user.first_name  = userUpdate.first_name;
         user.last_name   = userUpdate.last_name;
         user.you_are_the = userUpdate.you_are_the;
         user.location    = userUpdate.location;
         user.status      = userUpdate.status;
         dao.UpdateData(user);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Beispiel #15
0
        public async Task <HttpResponseMessage> Upload()
        {
            try
            {
                // Get current user_id
                int user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);

                string dir     = "/Files/Upload/Users/" + user_id.ToString() + "/Avatar/";
                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 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));
                    }
                    // Check if exist file
                    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_user updateRow = new preg_user();
                    foreach (MultipartFileData file in provider.FileData)
                    {
                        string path = dir + "/" + HttpUtility.UrlPathEncode(Path.GetFileName(file.LocalFileName));
                        files.Add(path);
                        updateRow.avatar = path;
                    }
                    UpdateData(user_id.ToString(), updateRow);

                    return(Request.CreateResponse(HttpStatusCode.Created, files));
                }
                catch (System.Exception ex)
                {
                    return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex));
                }
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
Beispiel #16
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);
            }
        }
Beispiel #17
0
        public IQueryable <preg_user> GetUsersByParams(preg_user data)
        {
            IQueryable <preg_user> result = connect.preg_user;

            for (int i = 0; i < data.GetType().GetProperties().ToList().Count(); i++)
            {
                string propertyName = data.GetType().GetProperties().ToList()[i].Name;

                var propertyValue = data.GetType().GetProperty(propertyName).GetValue(data, null);

                if (propertyName == "id" && (int)propertyValue != 0)
                {
                    result = result.Where(c => c.id == (int)propertyValue);
                }
                else if (propertyName == "password" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.password) > 0);
                }
                else if (propertyName == "phone" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.phone) > 0);
                }
                else if (propertyName == "social_type_id" && propertyValue != null)
                {
                    result = result.Where(c => c.social_type_id == (int)(propertyValue));
                }
                else if (propertyName == "first_name" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.first_name) > 0);
                }
                else if (propertyName == "last_name" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.last_name) > 0);
                }
                else if (propertyName == "you_are_the" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.you_are_the) > 0);
                }
                else if (propertyName == "location" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.location) > 0);
                }
                else if (propertyName == "status" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.status) > 0);
                }
                else if (propertyName == "avatar" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.avatar) > 0);
                }
                else if (propertyName == "email" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.email) > 0);
                }
                else if (propertyName == "uid" && propertyValue != null)
                {
                    result = result.Where(c => SqlFunctions.PatIndex("%" + propertyValue.ToString() + "%", c.uid) > 0);
                }
                else if (propertyName == "time_last_login" && propertyValue != null)
                {
                    result = result.Where(c => c.time_last_login == (DateTime)(propertyValue));
                }
            }
            return(result);
        }
 public HttpResponseMessage Put(string id, [FromBody] preg_user dataUpdate)
 {
     return(UpdateData(id, dataUpdate));
 }
Beispiel #19
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;
                }
            }
        }
Beispiel #20
0
        public HttpResponseMessage Put([FromBody] preg_user dataUpdate)
        {
            int user_id = Convert.ToInt32(((ClaimsIdentity)(User.Identity)).FindFirst("id").Value);

            return(UpdateData(user_id.ToString(), dataUpdate));
        }
Beispiel #21
0
 public void InsertData(preg_user item)
 {
     connect.preg_users.Add(item);
     connect.SaveChanges();
 }
Beispiel #22
0
 public void UpdateData(preg_user item)
 {
     connect.SaveChanges();
 }