public TelegramUserModel IsUserAuth() { if (Properties.Socials.Default.TelegramUserID != 0) { try { var loadedSession = store.Load("session"); session = Session.TryLoadOrCreateNew(store, Properties.Socials.Default.TelegramUserID.ToString()); var ph = imghlp.byteArrayToImage(loadedSession.TLUser.Photo.Serialize()); TelegramUserModel telegramuser = (new TelegramUserModel { UserID = loadedSession.TLUser.Id.ToString(), UserNameAndSurname = loadedSession.TLUser.FirstName + " " + loadedSession.TLUser.LastName, UserNickName = loadedSession.TLUser.Username, UserPhoto = ph }); return(telegramuser); } catch { return(null); } } else { return(null); } }
private async Task <TelegramUserModel> UpdateTelegramUser(TelegramUserModel telegramUser, UserModel user) { var entity = await telegramUserRepo.FirstAsync(x => x.Id == telegramUser.Id); entity.UserId = user.Id; // telegramUserRepo.Update(entity); await unitOfWork.CommitAsync(); return(ConvertEntityToTelegramUserModel(entity)); }
protected override void HandlerUserButtonOk_Click(object sender, EventArgs e) { Log.Debug(TAG, "HandlerUserButtonOk_Click"); string errMsg = ReadView(userId); if (!string.IsNullOrWhiteSpace(errMsg)) { UserCardSubHeader.Text = errMsg; UserCardSubHeader.SetTextColor(Color.Red); Toast.MakeText(this, errMsg, ToastLength.Short).Show(); return; } int selected_telegram_id = TelegramUsers.Keys.ToList()[TelegramAccount.SelectedItemPosition]; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { UserModel user = db.Users.Find(userId); user.Name = UserName.Text.Trim(); user.Email = UserEmail.Text.Trim(); user.Phone = UserPhone.Text.Trim(); user.AlarmSubscriber = UserAlarmSubscribing.Checked; user.CommandsAllowed = UserCommandsAllowed.Checked; db.Users.Update(user); if (selected_telegram_id > 0) { TelegramUserModel telegramUser = db.TelegramUsers.Find(selected_telegram_id); telegramUser.LinkedUserId = user.Id; List <TelegramUserModel> other_telegram_users = db.TelegramUsers.Where(x => x.LinkedUserId == user.Id && x.Id == selected_telegram_id).ToList(); if (other_telegram_users != null && other_telegram_users.Count > 0) { other_telegram_users.ForEach(x => { x.LinkedUserId = null; }); } } else { TelegramUserModel telegramUser = db.TelegramUsers.FirstOrDefault(x => x.LinkedUserId == userId); if (telegramUser != null) { telegramUser.LinkedUserId = null; } } db.SaveChanges(); } } StartActivity(typeof(UsersListActivity)); }
private async Task LoginUser(TelegramUserModel telegramUser, Message message) { if (LoginTempCache == null) { LoginTempCache = new Dictionary <long, TelegramLoginStepModel>(); } var model = LoginTempCache.GetValueOrDefault(telegramUser.Id); if (model == null) { LoginTempCache.Add(telegramUser.Id, new TelegramLoginStepModel { Step = TelegramLoginStep.WaitingForUsername }); await botService.Client.SendTextMessageAsync(message.Chat.Id, "You must first login"); await botService.Client.SendTextMessageAsync(message.Chat.Id, "Please enter your username"); } else if (model.Step == TelegramLoginStep.WaitingForUsername) { model.Username = message.Text; model.Step = TelegramLoginStep.WaiyingForPassword; await botService.Client.SendTextMessageAsync(message.Chat.Id, "Please enter your password"); } else { model.Password = message.Text; LoginTempCache.Remove(telegramUser.Id); UserModel user = null; try { user = await userLib.LoginAsync(new LoginModel { Password = model.Password, Username = model.Username }); } catch { } if (user == null) { await botService.Client.SendTextMessageAsync(message.Chat.Id, "Username or Password is incorct"); } else { telegramUser = await UpdateTelegramUser(telegramUser, user); await botService.Client.SendTextMessageAsync(message.Chat.Id, "Successful!, Thanks"); } } }
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { Log.Debug(TAG, $"OnBindViewHolder - position:{position}"); TelegramUserListItemViewHolder telegramUsersViewHolder = holder as TelegramUserListItemViewHolder; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { TelegramUserModel row = db.TelegramUsers.Include(x => x.LinkedUser).Skip(position).FirstOrDefault(); telegramUsersViewHolder.TelegramId.Text = row.TelegramId + (string.IsNullOrWhiteSpace(row.UserName) ? "" : $" (@{row.UserName})"); if (string.IsNullOrEmpty(row.Name)) { telegramUsersViewHolder.TelegramFirstSecondName.Text = "<no name>"; telegramUsersViewHolder.TelegramFirstSecondName.SetTextColor(Color.LightGray); } else { telegramUsersViewHolder.TelegramFirstSecondName.Text = row.Name; telegramUsersViewHolder.TelegramFirstSecondName.SetTextColor(Color.Black); } if (row.LinkedUser != null) { telegramUsersViewHolder.LinkedUser.Text = row.LinkedUser.Name; telegramUsersViewHolder.LinkedUser.SetTextColor(Color.Black); } else { telegramUsersViewHolder.LinkedUser.Text = "< - >"; telegramUsersViewHolder.LinkedUser.SetTextColor(Color.Gray); } telegramUsersViewHolder.LinkedUser.Tag = row.Id; } } }
protected virtual void HandlerUserButtonOk_Click(object sender, EventArgs e) { string errMsg = ReadView(); if (!string.IsNullOrWhiteSpace(errMsg)) { UserCardSubHeader.Text = errMsg; UserCardSubHeader.SetTextColor(Android.Graphics.Color.Red); Toast.MakeText(this, errMsg, ToastLength.Short).Show(); return; } int selected_telegram_id = TelegramUsers.Keys.ToList()[TelegramAccount.SelectedItemPosition]; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { UserModel user = new UserModel() { AlarmSubscriber = UserAlarmSubscribing.Checked, CommandsAllowed = UserCommandsAllowed.Checked, Name = UserName.Text.Trim(), Email = UserEmail.Text.Trim(), Phone = UserPhone.Text.Trim() }; db.Users.Add(user); db.SaveChanges(); if (selected_telegram_id > 0) { TelegramUserModel telegramUser = db.TelegramUsers.Find(selected_telegram_id); telegramUser.LinkedUserId = user.Id; db.SaveChanges(); } } } StartActivity(typeof(UsersListActivity)); }
protected override void OnCreate(Bundle savedInstanceState) { Log.Debug(TAG, "OnCreate"); base.OnCreate(savedInstanceState); UserFooterLayout = FindViewById <LinearLayout>(Resource.Id.user_footer_layout); int user_id = Intent.Extras.GetInt(nameof(UserModel.Id), 0); if (user_id < 1) { string err_title = GetText(Resource.String.err_title_2); UserName.Text = err_title; UserName.Enabled = false; UserEmail.Text = err_title; UserEmail.Enabled = false; UserPhone.Text = err_title; UserPhone.Enabled = false; UserAlarmSubscribing.Enabled = false; UserCommandsAllowed.Enabled = false; UserCardSubHeader.Text = err_title; UserCardSubHeader.Enabled = false; UserCardButtonOk.Enabled = false; return; } UserModel user = null; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { user = db.Users.Find(user_id); } } userId = user.Id; UserName.Text = user.Name; UserEmail.Text = user.Email; UserPhone.Text = user.Phone; UserAlarmSubscribing.Checked = user.AlarmSubscriber; UserCommandsAllowed.Checked = user.CommandsAllowed; TelegramUserModel telegramUser = null; lock (DatabaseContext.DbLocker) { using (DatabaseContext db = new DatabaseContext(gs.DatabasePathBase)) { telegramUser = db.TelegramUsers.FirstOrDefault(x => x.LinkedUserId == user.Id); } } if (telegramUser != null) { TelegramAccount.SetSelection(TelegramUsers.Keys.ToList().IndexOf(telegramUser.Id)); } UserCardHeader.Text = GetText(Resource.String.edit_user_title); UserCardSubHeader.Text = GetText(Resource.String.edit_user_sub_title); AppCompatButton buttonDeleteUser = new AppCompatButton(this) { Text = GetText(Resource.String.delete_title) }; buttonDeleteUser.SetTextColor(Color.DarkRed); buttonDeleteUser.Click += ButtonDeleteUser_Click; buttonDeleteUser.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent); UserFooterLayout.AddView(buttonDeleteUser); }