Ejemplo n.º 1
0
        public async Task <ResultModel> Put([FromBody] FinancialItem item)
        {
            var result = new ResultModel();

            result.Message = item.Name;
            if (item.Type != "收入" && item.Type != "支出")
            {
                result.IsSuccess = false;
                result.Message   = "Type:收入 or 支出";
                return(result);
            }

            FinancialItem itemToUpdate = await _context.FinancialItems.FindAsync(item.Id);

            if (itemToUpdate == null)
            {
                result.IsSuccess = false;
                result.Message   = "查無財務項目";
                return(result);
            }

            //檢查名稱是否重複
            var query = from o in _context.FinancialItems
                        where o.Name.ToUpper() == item.Name.ToUpper()
                        select o;

            if (query.Count() > 0)
            {//排除跟自己同名
                if (query.FirstOrDefault().Id != item.Id)
                {
                    result.IsSuccess = false;
                    result.Message   = "Name: " + item.Name + " exist.";
                    return(result);
                }
            }


            try
            {
                _context.Entry(itemToUpdate).CurrentValues.SetValues(item);

                result.IsSuccess = true;
                result.Message   = "編輯財務項目成功";
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                result.IsSuccess = false;
                result.Message   = "DB ERROR";
            }
            var accessToken = Request.Headers["Authorization"];
            var user        = await _TokenGetUserHelper.GetUser(accessToken);

            logger.Info("userId=" + user.Id + ", username="******"\nUpdate " + "FinancialItem id= " + item.Id + ", name=" + item.Name + " successfully.");


            return(result);
        }
Ejemplo n.º 2
0
        public async Task <ResultModel> Put([FromBody] member m)
        {
            var result = new ResultModel();

            if (m.MemberId == 0)
            {
                result.IsSuccess = false;
                result.Message   = "請輸入會員編號.";
                return(result);
            }


            member memberToUpdate = await _context.members.FindAsync(m.MemberId);

            if (memberToUpdate != null)
            {
                ResultModel checkMemberResult = CheckMember(m, "IsDuplicate");

                if (checkMemberResult.IsSuccess)
                {
                    try
                    {
                        _context.Entry(memberToUpdate).CurrentValues.SetValues(m);
                        await _context.SaveChangesAsync();

                        result.IsSuccess = true;
                        result.Message   = "編輯會員資料成功";
                    }
                    catch (Exception e)
                    {
                        result.IsSuccess = false;
                        result.Message   = "DB ERROR";
                    }
                }
                else
                {
                    result = checkMemberResult;
                }
            }
            else
            {
                result.IsSuccess = false;
                result.Message   = "查無資料";
            }

            var accessToken = Request.Headers["Authorization"];
            var user        = await _TokenGetUserHelper.GetUser(accessToken);

            logger.Info("userId=" + user.Id + ", username="******"\nEdit " + "member id= " + m.MemberId + ", name=" + m.Name + " successfully.");

            return(result);
        }
Ejemplo n.º 3
0
        public async Task <ResultModel> Put([FromBody] FriendForEdit f)
        {
            var result = new ResultModel();

            result.Message = f.Name;

            Friend friendToUpdate = await _context.Friends.FindAsync(f.Id);

            if (friendToUpdate == null)
            {
                result.IsSuccess = false;
                result.Message   = "查無友宮";
                return(result);
            }

            //檢查名稱是否重複
            var query = from o in _context.Friends
                        where o.Name == f.Name
                        select o;

            if (query.Count() > 0)
            {//排除跟自己同名
                if (query.FirstOrDefault().Id != f.Id)
                {
                    result.IsSuccess = false;
                    result.Message   = "Name: " + f.Name + " exist.";
                    return(result);
                }
            }

            try
            {
                _context.Entry(friendToUpdate).CurrentValues.SetValues(f);
                result.IsSuccess = true;
                result.Message   = "編輯友宮資料成功";
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                result.IsSuccess = false;
                result.Message   = "DB ERROR";
            }

            var accessToken = Request.Headers["Authorization"];
            var user        = await _TokenGetUserHelper.GetUser(accessToken);

            logger.Info("userId=" + user.Id + ", username="******"\n Edit " + "Friends id= " + f.Id + ", name=" + f.Name + " successfully.");
            return(result);
        }
Ejemplo n.º 4
0
        public ResultModel Get([FromQuery] QueryRitualMoney q)
        {
            ResultModel result = new ResultModel();

            if (!string.IsNullOrEmpty(q.Name))
            {
                q.Name = q.Name.Trim().ToUpper();
            }
            var query = from m in _context.members
                        where (string.IsNullOrEmpty(q.Name) ? true : m.Name.ToUpper().Contains(q.Name)) &&
                        (string.IsNullOrEmpty(q.Identity) ? true : m.Identity == q.Identity)
                        select m;

            //select new { m.Name, m.Identity };

            if (query.Count() == 0)
            {
                result.IsSuccess = true;
                result.Message   = "查無資料";
                return(result);
            }

            foreach (var i in query)
            {
                var records = _context.Entry(i)
                              .Collection(q => q.RitualMoneyRecords)
                              .Query()
                              .ToList();

                q.RitualMoneyRecords.AddRange(records);
            }

            if (q.Year != null)
            {
                //if (q.Year < 2019 || q.Year > 2029)
                //{
                //    result.IsSuccess = false;
                //    result.Message = "Input Year should be in range of 2019 to 2029.";
                //    return result;
                //}

                var copyList = new List <RitualMoneyRecord>(q.RitualMoneyRecords);
                //foreach (var j in q.RitualMoneyRecords) {
                //     if (DateTime.Parse(j.BorrowDate).Year != q.Year) {
                //         copyList.Remove(j);
                //     }
                // }
                foreach (var j in q.RitualMoneyRecords)
                {
                    if (j.BorrowDate.Year != q.Year)
                    {
                        copyList.Remove(j);
                    }
                }
                q.RitualMoneyRecords = copyList;
            }
            if (q.Month != null)
            {
                if (q.Month < 1 || q.Month > 12)
                {
                    result.IsSuccess = false;
                    result.Message   = "月份請輸入1~12月.";
                    return(result);
                }
                var copyList = new List <RitualMoneyRecord>(q.RitualMoneyRecords);
                foreach (var j in q.RitualMoneyRecords)
                {
                    //if (DateTime.Parse(j.BorrowDate).Month != q.Month)
                    //{
                    //    copyList.Remove(j);
                    //}
                    if (j.BorrowDate.Month != q.Month)
                    {
                        copyList.Remove(j);
                    }
                }
                q.RitualMoneyRecords = copyList;
            }

            result.IsSuccess = true;
            result.Data      = q.RitualMoneyRecords.OrderByDescending(o => o.RitualMoneyRecordId);

            return(result);
        }