private void Inquiry() { string s = "Success"; #region Lấy thông tin string name = Request.Params["name"]; string email = Request.Params["email"]; string content = Request.Params["content"]; string thongtinkhac = StringExtension.GhepChuoi("", email); string igid = GetFirstCateId(); #endregion GroupsItems.InsertItemsGroupsItems(lang, "QLDDKTV", "", "Đăng ký tư vấn dịch vụ", "", content, "", "", name, "", "", "", "", "", "", "", "", thongtinkhac, "0", "0", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "", igid, DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "", "0"); #region Gửi email thông báo đến string emailhethong = SettingsExtension.GetSettingKey(SettingsExtension.KeyMailWebsite, lang); string emailkhac = SettingsExtension.GetSettingKey(SettingsExtension.KeyEmailPhu, lang); string[] listemail = emailkhac.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); string date = DateTime.Now.ToString(); string subject = LanguageItemExtension.GetnLanguageItemTitleByName("Thông báo từ") + " " + UrlExtension.WebisteUrl + " " + date; string body = @" <div style='font:bold 14px Arial;padding-bottom:15px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Xin chào! Bạn có một đơn đăng ký tư vấn dịch vụ từ") + @" " + UrlExtension.WebisteUrl + @"</div> <div style='font:bold 12px Arial;padding-bottom:10px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Chi tiết") + @":</div> <ul> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Họ tên") + @": " + name + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Email") + @": " + email + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Gửi lúc") + @": " + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Nội dung") + @": " + content + @"</li> </ul>"; EmailExtension.SendEmail(emailhethong, subject, body, listemail); #endregion string[] strArrayReturn = { s }; Response.Write(js.Serialize(strArrayReturn)); }
public async Task <IActionResult> GetUserCompletionRateForTeamsAsync(string emailAddress, DateTime startDate, DateTime endDate) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } ISet <int> teams; // Get team Ids for user teams = await unitOfWork.TeamPermissionRepository.GetTeamIdsUserEmailSees(User.FindFirst("Email").Value); // Get completion rates for user return(Ok(await unitOfWork.CompletionLogEntryRepository.GetUserCompletionRateOnTeams(normalizedAddress, teams, startDate, endDate))); }
public async Task <IActionResult> Login([FromBody] LoginResource loginResource) { var account = await unitOfWork.UserAccountRepository .GetUserAccountAsync(loginResource.Email); if (account == null || account.IsDeleted) { return(NotFound("Account could not be found.")); } // Verify email address has valid structure string writeTo; if (!EmailExtension.TryNormalizeEmail(loginResource.Email, out writeTo)) { return(BadRequest("Not a valid email address!")); } var password = loginResource.Password + account.Salt; bool validPassword = BCrypt.Net.BCrypt.Verify(password, account.Password); if (validPassword) { var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("developmentKey!@3")); var signingCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256); var tokenOptions = new JwtSecurityToken( issuer: "http://localhost:55542", audience: "http://localhost:4200", claims: new List <Claim> { new Claim("Email", account.Email) }, signingCredentials: signingCredentials ); var tokenString = new JwtSecurityTokenHandler().WriteToken(tokenOptions); return(Ok(new { Token = tokenString })); } else { return(Unauthorized()); } }
public async Task <IActionResult> GetTasksForTeamAsync(string emailAddress, int teamId) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Get users email address from token var tokenOwnerEmail = User.FindFirst("Email").Value; // Verify user has permission to team tasks var userCanSee = await unitOfWork.TeamPermissionRepository.UserIsPermittedToSeeTeam(tokenOwnerEmail, teamId); if (!userCanSee) { return(Forbid()); } // Retrieve tasks from db var tasks = await unitOfWork.UserTaskRepository .GetTasksAsync(normalizedAddress); // Filter tasks that belong to team var visibleTasks = tasks.Where(task => task.TeamId != null && task.TeamId == teamId); // List of corresponding tasks as resources var resourceTasks = new List <UserTaskResource>(); // Map each task to a corresponding resource foreach (var task in visibleTasks) { // Add mapped resource to resources list if (!task.IsDeleted) { resourceTasks.Add(mapToTaskResource(task)); } } return(Ok(resourceTasks)); // List of UserTaskResources 200OK }
public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordResource changePasswordResource) { var email = User.FindFirst("Email").Value; var account = await unitOfWork.UserAccountRepository.GetUserAccountAsync(email); if (account == null || account.IsDeleted) { return(NotFound("Account could not be found.")); } // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(email, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } var password = changePasswordResource.OldPassword + account.Salt; bool validPassword = BCrypt.Net.BCrypt.Verify(password, account.Password); if (validPassword) { // Salt and hash password var newSalt = BCrypt.Net.BCrypt.GenerateSalt(); var newSaltedPassword = changePasswordResource.NewPassword + newSalt; var newHashedPassword = BCrypt.Net.BCrypt.HashPassword(newSaltedPassword); account.Password = newHashedPassword; account.Salt = newSalt; Task.WaitAll(unitOfWork.CompleteAsync()); return(Ok()); } else { return(Unauthorized()); } }
public async Task <IActionResult> AddTeamAsync([FromBody] TeamResource teamResource) { // Validate against the team model if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(teamResource.OwnerEmail, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Validate that the user creating the team is the assigned owner var tokenOwnerEmail = User.FindFirst("Email").Value; if (!tokenOwnerEmail.Equals(normalizedAddress)) { return(Forbid()); } // Map the team resource to a model teamResource.OwnerEmail = normalizedAddress; var teamModel = _mapper.Map <Team>(teamResource); // Add the team to context and save changes await unitOfWork.UserTeamRepository.AddAsync(teamModel); Task.WaitAll(unitOfWork.CompleteAsync()); // Fetch the newly created team from the DB var team = await unitOfWork.UserTeamRepository .GetUserTeamAsync(teamModel.Id); return(Ok(_mapper.Map <TeamResource>(team))); // Return newly created mapped team resource to client }
public async Task <IActionResult> GetUserCompletionRate(string emailAddress, DateTime startDate, DateTime endDate) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Check if user exists var userExists = await unitOfWork.UserAccountRepository .UserAccountExists(normalizedAddress); // User doesn't exist if (!userExists) { return(NotFound("Couldn't find user.")); } //User exists double completionRate = await unitOfWork.CompletionLogEntryRepository.GetUserCompletionRate(normalizedAddress, startDate, endDate); return(Ok(completionRate)); }
public async Task <IActionResult> GetTeamsForAccount(string emailAddress) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Check if user exists var account = await unitOfWork.UserAccountRepository.GetUserAccountAsync(normalizedAddress); // No account matches ownerId if (account == null || account.IsDeleted) { return(NotFound("No account found matching that ownerId.")); } var teams = await unitOfWork.TeamMemberRepository.GetAllTeamsForUser(normalizedAddress); return(Ok(teams.Where(team => !team.IsDeleted).Select(team => _mapper.Map <TeamResource>(team)))); }
public async Task <IActionResult> VetoTeamInvite(string inviteeEmail, int teamId) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(inviteeEmail, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } var invite = await unitOfWork.AddUserRequestRepository.GetAddUserRequestAsync(normalizedAddress, teamId); if (invite == null) { return(NotFound("No such invite")); } // Note: ensure up cascade deletion for team invites, we should be able to assume the team exists here var team = await unitOfWork.UserTeamRepository.GetUserTeamAsync(invite.DestinationTeam.Id); if (team == null || team.IsDeleted) { return(NotFound("No such team")); } // Validate that the vetoing user is the team owner var tokenOwnerEmail = User.FindFirst("Email").Value; if (!tokenOwnerEmail.Equals(team.OwnerEmail)) { return(Forbid()); } await unitOfWork.AddUserRequestRepository.DeleteAddUserRequestAsync(normalizedAddress, teamId); Task.WaitAll(unitOfWork.CompleteAsync()); return(Ok()); }
private void InserContactUs() { var email = Request.Params["email"]; var trangThai = "1"; #region Thêm tài khoản //Thêm tài khoản Members.InsertMembers( CodeApplications.MemberNewsletter, email, "", "", "", "", email, DateTime.Now.ToString(), "", "", "", "", "", "", "", "", trangThai, "", "", "", "", "", "", ""); #endregion #region Gửi email thông báo đến email hệ thống var emailhethong = SettingsExtension.GetSettingKey(SettingsExtension.KeyMailWebsite, lang); var emailkhac = email + "," + SettingsExtension.GetSettingKey("MailBanTin", lang); var listemail = emailkhac.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); var date = DateTime.Now.ToString(); var subject = LanguageItemExtension.GetnLanguageItemTitleByName("Thông báo từ") + " " + UrlExtension.WebisteUrl + " " + date; var body = @" <div style='font:bold 14px Arial;padding-bottom:15px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Xin chào! Bạn có đăng ký nhận thông tin từ") + " " + UrlExtension.WebisteUrl + @"</div> <div style='font:bold 12px Arial;padding-bottom:10px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Chi tiết") + @":</div> <ul> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Email") + @": " + email + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Gửi lúc") + @": " + DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss tt") + @"</li> </ul>"; EmailExtension.SendEmail(emailhethong, subject, body, listemail); #endregion #region Thông báo hoàn thành và reset các texbox string[] reply = { "success" }; Response.Output.Write(js.Serialize(reply)); #endregion }
public async Task <IActionResult> GetAccountAsync(string emailAddress) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Fetch account of ownerId var account = await unitOfWork.UserAccountRepository .GetUserAccountAsync(normalizedAddress); // Return error if account doesn't exist // I imagine we'll need to move IsDeleted later if user wants to reactivate account if (account == null || account.IsDeleted) { return(NotFound("Account could not be found.")); } // Return mapped account resource return(Ok(_mapper.Map <UserAccountResource>(account))); }
private void Booking() { string s = "Success"; string iid = StringExtension.RemoveSqlInjectionChars(Request.Form["iid"]); string name = StringExtension.RemoveSqlInjectionChars(Request.Form["name"]); string phone = StringExtension.RemoveSqlInjectionChars(Request.Form["phone"]); string email = StringExtension.RemoveSqlInjectionChars(Request.Form["email"]); string nationality = StringExtension.RemoveSqlInjectionChars(Request.Form["nationality"]); string departureTime = StringExtension.RemoveSqlInjectionChars(Request.Form["departureTime"]); string totalPrice = StringExtension.RemoveSqlInjectionChars(Request.Form["totalPrice"]); string trip = StringExtension.RemoveSqlInjectionChars(Request.Form["trip"]); string content = StringExtension.RemoveSqlInjectionChars(Request.Form["content"]); string nguoilon = StringExtension.RemoveSqlInjectionChars(Request.Form["nguoilon"]); string trevithanhnien = StringExtension.RemoveSqlInjectionChars(Request.Form["trevithanhnien"]); string treem = StringExtension.RemoveSqlInjectionChars(Request.Form["treem"]); string embe = StringExtension.RemoveSqlInjectionChars(Request.Form["embe"]); if (totalPrice != LanguageItemExtension.GetnLanguageItemTitleByName("Liên hệ")) { totalPrice = totalPrice + " " + LanguageItemExtension.GetnLanguageItemTitleByName("VND"); } string detail = @" <div>" + LanguageItemExtension.GetnLanguageItemTitleByName("Thông tin tour:") + @"</div> <ul> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Tên Tour") + ": <b>" + trip + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Ngày khởi hành") + ": <b>" + departureTime + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Số lượng người lớn") + ": <b>" + nguoilon + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Số lượng trẻ em từ 8 - 11 tuổi") + ": <b>" + trevithanhnien + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Số lượng trẻ em từ 3 - 7 tuổi") + ": <b>" + treem + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Số lượng trẻ em nhỏ hơn 3 tuổi") + ": <b>" + embe + @"</b></li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Tổng giá tiền") + ": <b style='color:#e90d0d'>" + totalPrice + @"</b></li> </ul> <div>" + LanguageItemExtension.GetnLanguageItemTitleByName("Thông tin người đặt:") + @"</div> <ul> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Họ tên") + ": " + name + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Điện thoại") + ": " + phone + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Email") + ": " + email + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Quốc tịch") + ": " + nationality + @"</li> <li>" + LanguageItemExtension.GetnLanguageItemTitleByName("Ghi chú") + ": " + content + @"</li> </ul>"; Subitems.InsertSubitems(iid, lang, CodeApplications.TourBooking, "Đơn đặt tour", detail, "", "", "", "", DateTime.Now.ToString(), DateTime.Now.ToString(), DateTime.Now.ToString(), "0", ""); #region Gửi email thông báo đến email hệ thống string emailhethong = SettingsExtension.GetSettingKey(SettingsExtension.KeyMailWebsite, lang); string emailkhac = SettingsExtension.GetSettingKey(SettingsExtension.KeyEmailPhu, lang); string[] listemail = emailkhac.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); string date = DateTime.Now.ToString(); string subject = LanguageItemExtension.GetnLanguageItemTitleByName("Thông báo đặt tour từ") + " " + UrlExtension.WebisteUrl + " " + date; string body = @" <div style='font:bold 14px Arial;padding-bottom:15px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Xin chào! Bạn có một đơn đăng ký đặt tour tại") + " " + TatThanhJsc.Extension.UrlExtension.WebisteUrl + @"</div> <div style='font:bold 12px Arial;padding-bottom:10px'>" + LanguageItemExtension.GetnLanguageItemTitleByName("Thông tin chi tiết") + @":</div> " + detail + @""; EmailExtension.SendEmail(emailhethong, subject, body, listemail); #endregion string[] strArrayReturn = { s }; Response.Write(js.Serialize(strArrayReturn)); }
public async Task <IActionResult> EditUserTaskAsync(int taskId, [FromBody] UserTaskResource userTaskResource) { // How does this validate against the UserTask model? if (!ModelState.IsValid) { return(BadRequest()); } // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(userTaskResource.OwnerEmail, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } // Get users email address from token var tokenOwnerEmail = User.FindFirst("Email").Value; if (!tokenOwnerEmail.Equals(normalizedAddress)) { return(Forbid()); } // Fetch an account from the DB asynchronously var account = await unitOfWork.UserAccountRepository .GetUserAccountAsync(tokenOwnerEmail); // Return not found exception if account doesn't exist if (account == null) { return(NotFound("Couldn't find account matching that ownerId.")); } // Retrieves task from UserTasks table var task = await unitOfWork.UserTaskRepository .GetTaskAsync(taskId); // Nothing was retrieved, no id match if (task == null || task.IsDeleted) { return(NotFound("Task couldn't be found.")); } // Validates task belongs to correct user if (task.OwnerEmail != account.Email) { return(BadRequest("Task does not belong to this account.")); } //Make sure that the task resource specifies a valid team if (userTaskResource.TeamId != null) { var team = await unitOfWork.UserTeamRepository.GetUserTeamAsync((int)userTaskResource.TeamId); if (team == null || (team.IsDeleted && (task.TeamId == null || userTaskResource.TeamId != task.TeamId))) { return(NotFound("No such team")); } } //Check if a todo for that task exists var todo = task.Todo; var todoExists = todo != null; //Complete the task if needed if (todoExists) { if (userTaskResource.IsCompleted && !todo.IsCompleted) { await unitOfWork.TodoRepository.CompleteTodoAsync(todo.TaskId); } else if (!userTaskResource.IsCompleted && todo.IsCompleted) { await unitOfWork.TodoRepository.UndoCompleteTodoAsync(todo.TaskId); } } //Delete the task if needed //Remove the todo if needed if (userTaskResource.IsDeleted) { await unitOfWork.TodoRepository.RemoveTodosAsync(taskId); } // Map resource to model task.Name = userTaskResource.Name; task.Description = userTaskResource.Description; task.Weekdays = userTaskResource.Weekdays; task.Frequency = userTaskResource.Frequency; //Don't change the email associated with the task task.TeamId = userTaskResource.TeamId; if (userTaskResource.IsDeleted) { task.Delete(); } //Refresh the todo list await unitOfWork.TodoRepository.RefreshTodo(taskId); // Save updated userTask to database await unitOfWork.CompleteAsync(); // Return mapped resource return(Ok(mapToTaskResource(task))); }
public ActionResult Index(Send Savemail) { List <SelectListItem> ulkekodu = (from i in db.TelKodu.ToList() select new SelectListItem { Text = i.UlkeKodu, Value = i.Id.ToString() }).ToList(); ViewBag.bag = ulkekodu; try { try { string[] email = Savemail.Kime.Split(';'); for (int i = 0; i < email.Count(); i++) { results = EmailExtension.EmailRegex(email[i]); } if (results.ResultErrorList.Count > 0) { ModelState.AddModelError("Kime", "Email girişlerinde hatalı bir email mevcut"); return(View(Savemail)); } else { foreach (var item in email) { var senderEmail = new MailAddress("*****@*****.**", "Edanur"); var receiverEmail = new MailAddress(item, "Receiver"); var password = "******"; var sub = Savemail.Konu; var body = Savemail.Mesaj + " " + Savemail.Kim + " " + Savemail.Telefon; var smtp = new SmtpClient() { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(senderEmail.Address, password) }; using (var mess = new MailMessage(senderEmail, receiverEmail) { Subject = Savemail.Konu, Body = body }) smtp.Send(mess); db.Send.Add(Savemail); db.SaveChanges(); } } return(View()); } catch (NullReferenceException exception) { ModelState.AddModelError("Kime", "Email alanı boş olamaz"); return(View()); } } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task <IActionResult> InviteUserToTeamAsync(string emailAddress, int teamId) { // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(emailAddress, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } var team = await unitOfWork.UserTeamRepository.GetUserTeamAsync(teamId); if (team == null || team.IsDeleted) { return(NotFound("No such team")); } var tokenOwnerEmail = User.FindFirst("Email").Value; // Check that inviter is on team and invitee isn't on team var inviterIsTeamMember = await unitOfWork.TeamMemberRepository.UserIsInTeam(teamId, tokenOwnerEmail); var inviteeIsTeamMember = await unitOfWork.TeamMemberRepository.UserIsInTeam(teamId, normalizedAddress); if (!inviterIsTeamMember || inviteeIsTeamMember) { return(BadRequest()); } // Check if inviter is team owner var creatorIsTeamOwner = team.OwnerEmail == tokenOwnerEmail; var inviter = await unitOfWork.UserAccountRepository.GetUserAccountAsync(tokenOwnerEmail); if (inviter == null || inviter.IsDeleted) { return(NotFound("User doesn't exist")); } var invitee = await unitOfWork.UserAccountRepository.GetUserAccountAsync(normalizedAddress); if (invitee == null || invitee.IsDeleted) { return(NotFound("User doesn't exist")); } //Check if invite already exists var invite = await unitOfWork.AddUserRequestRepository.GetAddUserRequestAsync(normalizedAddress, teamId); if (invite == null) { await unitOfWork.AddUserRequestRepository.AddAsync( new AddUserRequest { Invitee = invitee, Inviter = inviter, IsAuthorized = creatorIsTeamOwner, DestinationTeam = team }); } else { // Authorize existing invite if (creatorIsTeamOwner) { invite.InviterEmail = tokenOwnerEmail; invite.IsAuthorized = true; } } Task.WaitAll(unitOfWork.CompleteAsync()); return(Ok()); }
public async Task <IActionResult> UpdateUserTeamAsync(int teamId, [FromBody] TeamResource teamResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // Verify email address has valid structure string normalizedAddress; if (!EmailExtension.TryNormalizeEmail(teamResource.OwnerEmail, out normalizedAddress)) { return(BadRequest("Not a valid email address!")); } var dbTeam = await unitOfWork.UserTeamRepository.GetUserTeamAsync(teamId); // Validate that the user editing the team is the owner var tokenOwnerEmail = User.FindFirst("Email").Value; if (!tokenOwnerEmail.Equals(dbTeam.OwnerEmail)) { return(Forbid()); } // Fetch an account from the DB asynchronously var account = await unitOfWork.UserAccountRepository .GetUserAccountAsync(tokenOwnerEmail); // Return not found exception if account doesn't exist if (account == null) { return(NotFound("Couldn't find an account matching that ownerId.")); } // Get the team var team = await unitOfWork.UserTeamRepository .GetUserTeamAsync(teamId); // Nothing was retrieved, no id match if (team == null || team.IsDeleted) { return(NotFound("Couldn't find a team matching that teamId.")); } // Map resource to model team.TeamName = teamResource.TeamName; team.TeamDescription = teamResource.TeamDescription; // check if owner is changing if (tokenOwnerEmail != normalizedAddress) { await unitOfWork.TeamMemberRepository.ChangeTeamOwnership(teamId, normalizedAddress); } // Save updated team to database Task.WaitAll(unitOfWork.CompleteAsync()); // Return mapped team resource return(Ok(_mapper.Map <TeamResource>(team))); }
void HuyBai() { #region Lấy tiêu đề bài viết string postTitle = ""; string condition2 = ItemsTSql.GetById(iid); string fields = DataExtension.GetListColumns(ItemsColumns.VititleColumn, ItemsColumns.VISEOMETAPARAMSColumn); string orderby = GroupsColumns.IgorderColumn; DataTable dt = new DataTable(); dt = GroupsItems.GetAllData("1", fields, condition2, orderby); if (dt.Rows.Count > 0) { postTitle = dt.Rows[0][ItemsColumns.VititleColumn].ToString(); } #endregion #region Lấy info người đăng bài string tenNguoiDangBai = ""; string emailNguoiDangBai = ""; DataTable dtUserDangBai = Users.GetUsersByUserId(userid); if (dtUserDangBai.Rows.Count > 0) { tenNguoiDangBai = dtUserDangBai.Rows[0][UsersColumns.UserfirstnameColumn].ToString() + " " + dtUserDangBai.Rows[0][UsersColumns.UserlastnameColumn].ToString(); emailNguoiDangBai = dtUserDangBai.Rows[0][UsersColumns.UseremailColumn].ToString(); } #endregion #region Lấy info người hủy bài DataTable dtUserHuyBai = Users.GetUsersByUserId(CookieExtension.GetCookies("UserId")); string tenNguoiHuyBai = ""; if (dtUserHuyBai.Rows.Count > 0) { tenNguoiHuyBai = dtUserHuyBai.Rows[0][UsersColumns.UserfirstnameColumn].ToString() + " " + dtUserHuyBai.Rows[0][UsersColumns.UserlastnameColumn].ToString(); } #endregion #region Đổi trạng thái hiển thị của item string[] fieldsDelGroup = { "IIENABLE" }; string[] valuesDelGroup = { "3" }; string condition = " IID = '" + iid + "' "; TatThanhJsc.Database.Items.UpdateItems(DataExtension.UpdateTransfer(fieldsDelGroup, valuesDelGroup), condition); #endregion #region Thêm thông tin ("", người hủy, thời gian hủy, nội dung hủy) string data = StringExtension.GhepChuoi("", tenNguoiHuyBai, content); string[] fieldsDelGroup2 = { "VISEOMETACANONICAL" }; string[] valuesDelGroup2 = { "N'" + data + "'" }; string[] fieldsDelGroup3 = { "VISEOMETALANG" }; string[] valuesDelGroup3 = { "'" + DateTime.Now.ToString() + "'" }; condition = " IID = '" + iid + "' "; TatThanhJsc.Database.Items.UpdateItems(DataExtension.UpdateTransfer(fieldsDelGroup2, valuesDelGroup2), condition); TatThanhJsc.Database.Items.UpdateItems(DataExtension.UpdateTransfer(fieldsDelGroup3, valuesDelGroup3), condition); #endregion #region Gửi mail tới thành viên string link = "", contentEmail = ""; link = UrlExtension.WebisteUrl + "admin.aspx?uc=" + uc + "&suc=QuanLyBaiVietBiHuy"; contentEmail = @" <div style='color:#333'> <div>" + LanguageItemExtension.GetnLanguageItemTitleByName("Xin chào") + @" " + tenNguoiDangBai + @"!</div> <br/> <div>" + LanguageItemExtension.GetnLanguageItemTitleByName("Bài viết") + " <b>" + postTitle + @"</b> " + LanguageItemExtension.GetnLanguageItemTitleByName("của bạn đã bị hủy bỏ bởi") + @" <span style='color: blue'>" + tenNguoiHuyBai + @"</span> " + LanguageItemExtension.GetnLanguageItemTitleByName("với lời nhắn") + @":</div> <br /> <div>""" + content + @"""</div> <br /> <div>" + LanguageItemExtension.GetnLanguageItemTitleByName("Để xem danh sách các bài viết bị hủy, vui lòng click vào") + @" <a href='" + link + @"'>" + LanguageItemExtension.GetnLanguageItemTitleByName("đây") + @"</a>.</div> </div>" ; EmailExtension.SendEmail(emailNguoiDangBai, "Thông báo hủy bài viết từ " + UrlExtension.WebisteUrl, contentEmail); #endregion }