Beispiel #1
0
        public MyStatusCode UnfollowDog(long idLover, long idDog)
        {
            MyStatusCode state = MyStatusCode.Validated;
            DogLover     lover = loverDao.Get(idLover);
            Dog          dog   = dogDao.Get(idDog);

            if (lover == null || dog == null)
            {
                state = MyStatusCode.Invalid;
            }
            else
            {
                using (var dbTransaction = dogDao.db.Database.BeginTransaction())
                {
                    try
                    {
                        if (followDao.Delete(idDog, idLover) != null)
                        {
                            loverDao.UpdateFollow(lover, -1);
                            dbTransaction.Commit();
                        }
                        else
                        {
                            state = MyStatusCode.Invalid;
                        }
                    }
                    catch (Exception)
                    {
                        dbTransaction.Rollback();
                        state = MyStatusCode.InternalServerError;
                    }
                }
            }
            return(state);
        }
Beispiel #2
0
        public MyStatusCode PlayActivity(Activity activity)
        {
            MyStatusCode state = MyStatusCode.Validated;

            long[] idDogs   = ConverterUtil.ConvertIds(activity.dogs);
            long[] idLovers = ConverterUtil.ConvertIds(activity.lovers);

            using (var dbTransaction = activityDao.db.Database.BeginTransaction())
            {
                try
                {
                    activityDao.Add(activity);
                    foreach (long idLover in idLovers)
                    {
                        loverDao.IncLoves(idLover, DefaultUtil.PlayActivityLoversPoint);
                    }
                    foreach (long idDog in idDogs)
                    {
                        dogDao.IncLoves(idDog, DefaultUtil.PlayActivityLoversPoint);
                    }
                    dbTransaction.Commit();
                }
                catch (Exception)
                {
                    state = MyStatusCode.InternalServerError;
                    dbTransaction.Rollback();
                }
            }

            return(state);
        }
        public MyStatusCode RegisterAccount(string username, string password, string gender)
        {
            MyStatusCode state = MyStatusCode.Invalid;

            if (!AccountUtil.CheckAccountInfo(username, password) ||
                !(gender.Equals("M") || gender.Equals("F")))
            {
                return(state);
            }
            if (loverDao.GetPw(username) != null)
            {
                logger.Debug("existing name :" + username);
                state = MyStatusCode.Existing;
            }
            else
            {
                DogLover lover = new DogLover()
                {
                    name      = username,
                    password  = password,
                    gender    = gender,
                    figure    = DefaultUtil.DefaultLoverFigure,
                    loves     = 0,
                    loveDogs  = 0,
                    adoptDogs = 0
                };
                loverDao.Add(lover);
                state = MyStatusCode.Validated;
            }
            return(state);
        }
        public MyStatusCode ValidateAccount(string username, string password, ref long userId)
        {
            MyStatusCode state = MyStatusCode.Invalid;

            if (!AccountUtil.CheckAccountInfo(username, password))
            {
                return(state);
            }
            string pw = loverDao.GetPw(username);

            if (pw == null)
            {
                logger.Debug("no such user : "******"wrong pw : {0} of {1}", pw, username));
                state = MyStatusCode.WrongPw;
            }
            else
            {
                userId = loverDao.GetId(username);
                state  = MyStatusCode.Validated;
            }

            return(state);
        }
        public HttpResponseMessage Donate(List <DonateItem> data)
        {
            HttpResponseMessage message = new HttpResponseMessage();
            long         userId         = SupportFilter.GetUserIdFromCookie();
            MyStatusCode state          = loverService.Donate(data, userId);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
        public HttpResponseMessage UnfollowDog(long idDog)
        {
            long userId = SupportFilter.GetUserIdFromCookie();
            HttpResponseMessage message = new HttpResponseMessage();
            MyStatusCode        state   = dogService.UnfollowDog(userId, idDog);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
Beispiel #7
0
        public HttpResponseMessage Logout()
        {
            HttpResponseMessage message = Request.CreateResponse();
            string       username       = SupportFilter.GetUsernameFromCookie();
            MyStatusCode state          = accountService.CleanSessionAndCookie(username);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
        public HttpResponseMessage AdoptDog(dynamic data)
        {
            HttpResponseMessage         message = new HttpResponseMessage();
            Dictionary <String, Object> result  = new Dictionary <string, object>();
            long         idDog   = data.idDog;
            long         idLover = SupportFilter.GetUserIdFromCookie();
            MyStatusCode state   = dogService.AdoptDog(idLover, idDog);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
Beispiel #9
0
        public HttpResponseMessage Register(dynamic data)
        {
            HttpResponseMessage         message = Request.CreateResponse();
            Dictionary <String, Object> result  = new Dictionary <string, object>();
            string       username = data.username;
            string       password = data.password;
            string       gender   = data.gender;
            MyStatusCode state    = accountService.RegisterAccount(username, password, gender);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
        public MyStatusCode CleanSessionAndCookie(string username)
        {
            MyStatusCode state = MyStatusCode.Validated;

            if (username == null)
            {
                state = MyStatusCode.Invalid;
            }
            else
            {
                HttpContext.Current.Session.Remove(username);
                HttpContext.Current.Request.Cookies.Remove("Token");
            }
            return(state);
        }
        public HttpResponseMessage CommentDog(dynamic data)
        {
            HttpResponseMessage message = new HttpResponseMessage();
            long    userId  = SupportFilter.GetUserIdFromCookie();
            Comment comment = new Comment()
            {
                idComment   = 0,
                commenter   = userId,
                content     = data.content,
                dog         = data.dog,
                commentTime = DateTime.Now
            };
            MyStatusCode state = loverService.CommentDog(comment);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
        public MyStatusCode Donate(List <DonateItem> items, long userId)
        {
            MyStatusCode state = MyStatusCode.Validated;

            if (userId == 0)
            {
                state = MyStatusCode.Invalid;
            }
            else
            {
                int          lovesInc = CalLovesInc(items);
                DonateRecord record   = new DonateRecord()
                {
                    lover      = userId,
                    items      = items.Count(),
                    lovesInc   = lovesInc,
                    donateTime = DateTime.Now
                };

                using (var dbTransaction = loverDao.db.Database.BeginTransaction())
                {
                    try
                    {
                        long recordId = donateDao.Add(record).idDonateRecord;

                        foreach (DonateItem item in items)
                        {
                            item.record = recordId;
                        }
                        donateDao.Donate(items);

                        inventoryDao.Update(items);

                        loverDao.IncLoves(userId, lovesInc);
                        dbTransaction.Commit();
                    }
                    catch (Exception)
                    {
                        dbTransaction.Rollback();
                        state = MyStatusCode.InternalServerError;
                    }
                }
            }
            return(state);
        }
Beispiel #13
0
        public HttpResponseMessage PlayActivity(dynamic data)
        {
            HttpResponseMessage message  = new HttpResponseMessage();
            Activity            activity = new Activity()
            {
                idActivity = 0,
                kind       = data.kind,
                desc       = data.desc,
                images     = data.images,
                admins     = " " + data.admins,
                lovers     = " " + data.lovers,
                dogs       = " " + data.dogs
            };
            MyStatusCode state = adminService.PlayActivity(activity);

            message.StatusCode = (HttpStatusCode)state;
            return(message);
        }
        public MyStatusCode CommentDog(Comment comment)
        {
            MyStatusCode state = MyStatusCode.Validated;

            if (comment.commenter == 0)
            {
                state = MyStatusCode.Invalid;
            }
            else
            {
                try
                {
                    commentDao.Add(comment);
                }
                catch (Exception)
                {
                    state = MyStatusCode.InternalServerError;
                }
            }
            return(state);
        }
Beispiel #15
0
        public MyStatusCode FollowDog(long idLover, long idDog)
        {
            MyStatusCode state = MyStatusCode.Validated;
            DogLover     lover = loverDao.Get(idLover);
            Dog          dog   = dogDao.Get(idDog);

            if (lover == null || dog == null)
            {
                state = MyStatusCode.Invalid;
            }
            else if (lover.loveDogs >= DefaultUtil.DefaultFollowMaximum)
            {
                state = MyStatusCode.Limited;
            }
            else
            {
                using (var dbTransaction = dogDao.db.Database.BeginTransaction())
                {
                    try
                    {
                        Follow follow = new Follow()
                        {
                            dog_       = idDog,
                            lover_     = idLover,
                            followTime = DateTime.Now
                        };
                        followDao.Add(follow);
                        loverDao.UpdateFollow(lover, 1);
                        dbTransaction.Commit();
                    }
                    catch (Exception)
                    {
                        dbTransaction.Rollback();
                        state = MyStatusCode.InternalServerError;
                    }
                }
            }
            return(state);
        }
Beispiel #16
0
        public HttpResponseMessage Login(string username, string password)
        {
            HttpResponseMessage         message = Request.CreateResponse();
            Dictionary <String, Object> result  = new Dictionary <string, object>();

            logger.Debug(string.Format("name:{0} pw:{1}", username, password));
            //数据库验证
            long         userId = 0;
            MyStatusCode state  = accountService.ValidateAccount(username, password, ref userId);

            message.StatusCode = (HttpStatusCode)state;
            if (state == MyStatusCode.Validated)
            {
                //生成token
                string token = accountService.GenerateToken(username, password, userId);
                accountService.GenerateCookie(token);
                result.Add("Token", token);
            }
            string content = LitJson.JsonMapper.ToJson(result);

            message.Content = new StringContent(content, System.Text.Encoding.UTF8, "application/json");
            return(message);
        }
Beispiel #17
0
        public MyStatusCode AdoptDog(long idLover, long idDog)
        {
            MyStatusCode state = MyStatusCode.Validated;
            DogLover     lover = loverDao.Get(idLover);
            Dog          dog   = dogDao.Get(idDog);

            if (dog == null || lover == null || dog.adopter != 0)
            {
                state = MyStatusCode.Invalid;
            }
            else if (lover.adoptDogs >= DefaultUtil.DefaultAdoptionMaximum)
            {
                state = MyStatusCode.Limited;
            }
            else if (lover.loves < dog.loves)
            {
                state = MyStatusCode.CannotAfford;
            }
            else
            {
                using (var dbTransaction = dogDao.db.Database.BeginTransaction())
                {
                    try
                    {
                        dogDao.BeAdopted(dog, lover.idUser);
                        loverDao.AdoptDog(lover, dog.loves);
                        dbTransaction.Commit();
                    }
                    catch (Exception)
                    {
                        dbTransaction.Rollback();
                        state = MyStatusCode.InternalServerError;
                    }
                }
            }
            return(state);
        }