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)); } }
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, "Категории обновлены"))); }
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, "Данные внесены"))); }
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(); } }
public ActionResult CategoryAccountEdit(Guid?id, string name, string description) { CategoryAccount category = DAL.CategoryAccountAddUpdate(id, name, description); return(RedirectToAction("CategoryAccounts")); }
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)); }