Exemplo n.º 1
0
 public HttpResponseMessage CategoryUpdate(CategoryAccount newCategory)
 {
     using (db)
     {
         newCategory.BudgetId = db.Budgets.FirstOrDefault(x => x.OwnerId == UserId & x.Id == newCategory.BudgetId).Id;
         if (db.CategoryAccounts.Any(cat => cat.Id == newCategory.Id))
         {
             db.Entry(newCategory).State = EntityState.Modified;
         }
         else
         {
             db.Entry(newCategory).State = EntityState.Added;
         }
         db.SaveChanges();
         return(ResponseObject2Json(true));
     }
 }
Exemplo n.º 2
0
        public async Task <JsonResult> PutAccount([FromBody] List <Category> category, [FromHeader] string Authorization)
        {
            string token = Authorization.Split(' ')[1];
            var    user  = from bb in _context.Auths
                           join aa in _context.Tokens on bb.id equals aa.user_id
                           join cc in _context.Accounts on bb.id equals cc.id_user
                           where aa.access == token
                           select cc;
            var usercheck = user.FirstOrDefault();
            var temp      = await _context.categoryAccounts.Where(x => x.id_account == usercheck.id).ToListAsync();

            if (temp.Count == 0)
            {
                return(new JsonResult(_responce.Return_Responce(System.Net.HttpStatusCode.NotFound, null, "Аккаунт не найден")));
            }
            foreach (var cat in category)
            {
                var tt = temp.Find(x => x.id == cat.id);
                if (tt != null)
                {
                    temp.Remove(tt);
                }
                else
                {
                    CategoryAccount categ = new CategoryAccount
                    {
                        id_account = usercheck.id,
                        level0     = cat.parent,
                        level1     = cat.id
                    };
                    await _context.categoryAccounts.AddAsync(categ);
                }
            }
            foreach (var t in temp)
            {
                _context.categoryAccounts.Remove(t);
            }
            await _context.SaveChangesAsync();

            return(new JsonResult(_responce.Return_Responce(System.Net.HttpStatusCode.OK, null, "Категории обновлены")));
        }
Exemplo n.º 3
0
        public async Task <JsonResult> PostAccount([FromBody] SendAccount account, [FromHeader] string Authorization)
        {
            string jwt          = Authorization.Split(' ')[1];
            var    user         = HttpContext.User.Identity.Name;
            var    account_main = await _context.Accounts.Where(x => x.id_user == Convert.ToInt32(user)).FirstOrDefaultAsync();

            _context.Entry(account_main).State = EntityState.Modified;
            account_main = _account.Changeacount(account, account_main);
            var category = await _context.categoryAccounts.Where(x => x.id_account == account_main.id).FirstOrDefaultAsync();

            if (category == null)
            {
                category = new CategoryAccount
                {
                    id_account = account_main.id,
                    level0     = account.level0,
                    level1     = account.level1
                };
                await _context.categoryAccounts.AddAsync(category);
            }
            else
            {
                if (category.level1 != 0)
                {
                    _context.Entry(category).State = EntityState.Modified;
                    category.level0 = account.level0;
                    category.level1 = account.level1;
                }
            }
            var    http = new HttpClient();
            string url  = String.Format
                              ("https://geocode-maps.yandex.ru/1.x/?apikey=a2c8035f-05f9-4489-aea1-ad9b2a841572&geocode={0}&format=json", account.address);

            try
            {
                var result = await http.GetStringAsync(url);

                JObject o     = JObject.Parse(result);
                var     res   = o["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"];
                var     coor  = res.Value <String>("pos").ToString().Split(' ');
                var     coord = await _context.Coordinates.Where(x => x.account_id == account_main.id).FirstOrDefaultAsync();

                if (coord == null)
                {
                    try
                    {
                        coord = new ServicesModel.Models.Geo.Coordinate
                        {
                            account_id = account_main.id,
                            lat        = double.Parse(coor[1], CultureInfo.InvariantCulture),
                            lon        = double.Parse(coor[2], CultureInfo.InvariantCulture)
                        };
                        await _context.Coordinates.AddAsync(coord);
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.Message);
                    }
                }
                else
                {
                    _context.Entry(coord).State = EntityState.Modified;
                    coord.lat = Convert.ToInt32(coor[0]);
                    coord.lon = Convert.ToInt32(coor[1]);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
            await _context.SaveChangesAsync();

            return(new JsonResult(_responce.Return_Responce(System.Net.HttpStatusCode.OK, null, "Данные внесены")));
        }
Exemplo n.º 4
0
        private void SignInAsync(ApplicationUser user, bool isPersistent)
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);

            var identity = UserManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);

            AuthenticationManager.SignIn(new AuthenticationProperties()
            {
                IsPersistent = isPersistent
            }, identity);

            Response.Cookies.Add(new HttpCookie("UserEmail")
            {
                Value = user.Email, Expires = DateTime.Now.AddYears(1)
            });

            Guid userId = Guid.Parse(user.Id);

            //Add member
            var currentMember = db.Members.FirstOrDefault(x => x.Id == userId);

            if (currentMember == null)
            {
                currentMember              = new Member();
                currentMember.Id           = userId;
                currentMember.Email        = user.UserName;
                currentMember.FullName     = user.UserName;
                currentMember.UserId       = userId;
                currentMember.MainMemberId = userId;
                db.Members.Add(currentMember);
                db.SaveChanges();
            }

            //Add default budget
            var budget = db.Budgets.FirstOrDefault(x => x.OwnerId == userId);

            if (budget == null)
            {
                budget = new Budget
                {
                    Id      = Guid.NewGuid(),
                    Name    = R.R.MainBudget,
                    OwnerId = userId,
                };
                db.Budgets.Add(budget);
                db.SaveChanges();
            }

            var currency = ExtensionsDB.DefaultCurrency(db, userId);

            if (!db.CategoryAccounts.Any())
            {
                var accCat1 = new CategoryAccount
                {
                    BudgetId    = budget.Id,
                    Id          = Guid.NewGuid(),
                    Name        = R.R.CategoryCash,
                    Description = R.R.CategoryCash,
                };
                var accCat2 = new CategoryAccount
                {
                    BudgetId    = budget.Id,
                    Id          = Guid.NewGuid(),
                    Name        = R.R.CategoryCards,
                    Description = R.R.CategoryCards,
                };
                db.CategoryAccounts.Add(accCat1);
                db.CategoryAccounts.Add(accCat2);
                db.SaveChanges();

                db.Accounts.Add(new Account
                {
                    Id         = Guid.NewGuid(),
                    CategoryId = accCat1.Id,
                    CurrencyId = currency.Id,
                    Name       = R.R.AccountCash,
                    ShowInRest = true,
                });
                db.Accounts.Add(new Account
                {
                    Id         = Guid.NewGuid(),
                    CategoryId = accCat2.Id,
                    CurrencyId = currency.Id,
                    Name       = R.R.AccountCard,
                    ShowInRest = true,
                });
                db.SaveChanges();
            }
        }
Exemplo n.º 5
0
        public ActionResult CategoryAccountEdit(Guid?id, string name, string description)
        {
            CategoryAccount category = DAL.CategoryAccountAddUpdate(id, name, description);

            return(RedirectToAction("CategoryAccounts"));
        }
Exemplo n.º 6
0
        public async Task <ActionResult> AuthorizeFromPhone([FromBody] SendRegister token)
        {
            var user = await _context.Auths.Where(x => x.role == token.role && x.Phone == token.phone).FirstOrDefaultAsync();

            if (user != null)
            {
                return(BadRequest());
            }
            user = new ServicesModel.Models.Auth.Auth
            {
                data_add       = DateTime.Now,
                last_visit     = DateTime.Now,
                is_active      = true,
                role           = token.role,
                password       = "******",
                email          = token.email,
                EmailConfirmed = false,
                UserName       = token.email,
                Phone          = token.phone
            };
            await _context.Auths.AddAsync(user);

            await _context.SaveChangesAsync();

            UID uid = new UID
            {
                uid        = token.id,
                id_user    = user.id,
                updateDttm = DateTime.Now
            };
            await _context.Uids.AddAsync(uid);

            var new_token = _auth.Generate_Tokens(user.id, user.role);
            await _context.Tokens.AddAsync(new_token);

            user.last_visit = DateTime.Now;
            ServicesModel.Models.Account.Account account = new ServicesModel.Models.Account.Account
            {
                address = token.address,
                name    = token.name,
                email   = token.email,
                id_user = user.id,
                phone   = token.phone,
                site    = token.site,
                update  = DateTime.Now
            };
            await _context.Accounts.AddAsync(account);

            await _context.SaveChangesAsync();

            foreach (var acc in token.level1)
            {
                var category = new CategoryAccount
                {
                    id_account = account.id,
                    level0     = token.level0,
                    level1     = acc
                };
                await _context.categoryAccounts.AddAsync(category);
            }
            await _context.SaveChangesAsync();

            return(Ok(new_token.access));
        }