public bool Equals(AssociationTravelAgency other) { if (ReferenceEquals(null, other)) return false; if (ReferenceEquals(this, other)) return true; if (other.Id == 0 && Id == 0) return false; else return other.Id == Id; }
private void FixupTravelAgency(AssociationTravelAgency previousValue) { if (IsDeserializing) { return; } if (previousValue != null && previousValue.AssociationUserTravelAgencyRoles.Contains(this)) { previousValue.AssociationUserTravelAgencyRoles.Remove(this); } if (TravelAgency != null) { if (!TravelAgency.AssociationUserTravelAgencyRoles.Contains(this)) { TravelAgency.AssociationUserTravelAgencyRoles.Add(this); } AgencyId = TravelAgency.Id; } if (ChangeTracker.ChangeTrackingEnabled) { if (ChangeTracker.OriginalValues.ContainsKey("TravelAgency") && (ChangeTracker.OriginalValues["TravelAgency"] == TravelAgency)) { ChangeTracker.OriginalValues.Remove("TravelAgency"); } else { ChangeTracker.RecordOriginalValue("TravelAgency", previousValue); } if (TravelAgency != null && !TravelAgency.ChangeTracker.ChangeTrackingEnabled) { TravelAgency.StartTracking(); } } }
public AssociationTravelAgency SaveTravelAgency(AssociationTravelAgency agency) { if (!Roles.IsUserInRole(RoleName.StaffUser)) throw new SecurityException(); using (var db = new LomsContext()) { db.Connection.Open(); using (var transaction = db.Connection.BeginTransaction()) { db.AssociationTravelAgencies.ApplyChanges(agency); db.SaveChanges(); var managerRole = (from r in db.AssociationUserTravelAgencyRoles where r.AgencyId == agency.Id && r.RoleId == (int)TravelAgencyRole.Manager select r).SingleOrDefault(); if (agency.ManagerId == 0) { if (managerRole != null) { //make current manager supervisor managerRole.Role = TravelAgencyRole.Supervisor; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); db.SaveChanges(); } } else { bool createNewRole = false; if (managerRole != null && managerRole.UserId != agency.ManagerId) { //make current manager supervisor managerRole.Role = TravelAgencyRole.Supervisor; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); var userRole = db.AssociationUserTravelAgencyRoles.SingleOrDefault(r => r.UserId == agency.ManagerId); if (userRole != null) { db.AssociationUserTravelAgencyRoles.DeleteObject(userRole); db.SaveChanges(); } createNewRole = true; } else if (managerRole == null) createNewRole = true; if (createNewRole) { managerRole = new AssociationUserTravelAgencyRole() { UserId = agency.ManagerId.Value, AgencyId = agency.Id, Role = TravelAgencyRole.Manager, Status = TravelAgencyStatus.Accepted }; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); db.SaveChanges(); var emailProvider = db.AssociationEmails.FirstOrDefault(e => e.AssociationId == CurrentAssociationId); if (emailProvider != null) { var association = db.Associations.FirstOrDefault(a => a.Id == CurrentAssociationId); var user = db.AssociationUsers.SingleOrDefault(u => u.Id == managerRole.UserId); var uri = HttpContext.Current.Request.Url; string baseUrl = String.Format("{0}://{1}:{2}", uri.Scheme, uri.Host ?? "80", uri.Port); string contactUsLink = Path.Combine(baseUrl + "/#Contact"); var emailTemplate = new EmailTemplate("ExistingTravelAgentIsAddedAsTravelManager"); emailTemplate["UserName"] = user.FullName.ToUpper(); emailTemplate["TravelAgencyName"] = agency.Name.ToUpper(); emailTemplate["AssociationName"] = association.Name.ToUpper(); emailTemplate["ContactUsLink"] = contactUsLink; var avBody = AlternateView.CreateAlternateViewFromString(emailTemplate.Html, null, MediaTypeNames.Text.Html); emailProvider.SendMail(user.Email, association.Name.ToUpper() + " Travel Agency Manager", emailTemplate.Txt, null, avBody, true); } } } transaction.Commit(); } } using (var db = new LomsContext()) { agency = db.AssociationTravelAgencies.IncludeAll("Country", "State", "State.Country", "Suburb", "Suburb.Country", "Suburb.State", "Suburb.State.Country", "Manager") .SingleOrDefault(a => a.Id == agency.Id); } return agency; }
public void RemoveTravelAgency(int agencyId) { if (!Roles.IsUserInRole(RoleName.StaffUser)) throw new SecurityException(); using (var db = new LomsContext()) { var agency = new AssociationTravelAgency() { Id = agencyId }; db.AssociationTravelAgencies.Attach(agency); db.AssociationTravelAgencies.DeleteObject(agency); db.SaveChanges(); } }
private void OpenTravelAgencyWindow(AssociationTravelAgency agency, bool isAdd) { ////var viewModel = Kernel.Get<TravelAgencyChildWindowViewModel>(); ////var view = Kernel.Get<TravelAgencyChildWindow>(); var viewModel = Kernel.Get<TravelAgencyChildWindowViewModel>(); var view = Kernel.Get<AddTravelAgencyPopup>(); viewModel.IsAdd = isAdd; viewModel.TravelAgency = agency; view.DataContext = viewModel; viewModel.Completed += (o, e) => { view.Close(); TravelAgencies.Replace(e.Value); SelectedTravelAgency = e.Value; }; view.Show(); }
public AssociationTravelAgency SaveTravelAgency(AssociationTravelAgency agency) { if (!Roles.IsUserInRole(RoleName.StaffUser)) throw new SecurityException(); using (TransactionScope scope = new TransactionScope()) using (var db = new LomsContext()) { if (agency.Suburb != null) { agency.Country = null; agency.State = null; } else if (agency.State != null) agency.Country = null; agency.AssociationId = CurrentAssociationId; db.AssociationTravelAgencies.ApplyChanges(agency); db.SaveChanges(); var managerRole = (from r in db.AssociationUserTravelAgencyRoles where r.AgencyId == agency.Id && r.RoleId == (int)TravelAgencyRole.Manager select r). SingleOrDefault(); if (agency.ManagerId == 0) { if (managerRole != null) { //make current manager supervisor managerRole.Role = TravelAgencyRole.Supervisor; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); db.SaveChanges(); } } else { bool createNewRole = false; if (managerRole != null && managerRole.UserId != agency.ManagerId) { //make current manager supervisor managerRole.Role = TravelAgencyRole.Supervisor; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); var userRole = (from r in db.AssociationUserTravelAgencyRoles where r.UserId == agency.ManagerId select r). SingleOrDefault(); if (userRole != null) db.AssociationUserTravelAgencyRoles.DeleteObject(userRole); createNewRole = true; } else if (managerRole == null) createNewRole = true; if (createNewRole) { managerRole = new AssociationUserTravelAgencyRole() { UserId = agency.ManagerId.Value, AgencyId = agency.Id, Role = TravelAgencyRole.Manager, Status = TravelAgencyStatus.Accepted }; db.AssociationUserTravelAgencyRoles.ApplyChanges(managerRole); db.SaveChanges(); //send letter var emailProvider = (from e in db.AssociationEmails where e.AssociationId == agency.AssociationId select e) .FirstOrDefault(); if (emailProvider != null) { var association = (from a in db.Associations where a.Id == agency.AssociationId select a) .SingleOrDefault(); var user = (from a in db.AssociationUsers where a.Id == managerRole.UserId select a) .SingleOrDefault(); var request = HttpContext.Current.Request; var uri = request.Url; string baseUrl = String.Format("{0}://{1}:{2}", uri.Scheme, uri.Host ?? "80", uri.Port); string contactUsLink = Path.Combine(baseUrl + "/#Contact"); var txtContent = MailTemplateHelper.GetExistingTravelAgentIsAddedAsTravelManagerTxtContent(association.Name.ToUpper(), user.FullName.ToUpper(), contactUsLink, agency.Name); var htmlContent = MailTemplateHelper.GetExistingTravelAgentIsAddedAsTravelManagerHtmlContent(association.Name.ToUpper(), user.FullName.ToUpper(), contactUsLink, agency.Name); var avBody = AlternateView.CreateAlternateViewFromString(htmlContent, null, MediaTypeNames.Text.Html); emailProvider.SendMail(user.Email, association.Name.ToUpper() + " Travel Agency Manager", txtContent, null, avBody, true); } } } agency = db.AssociationTravelAgencies.IncludeAll("Country", "State", "State.Country", "Suburb", "Suburb.Country", "Suburb.State", "Suburb.State.Country") .FirstOrDefault(a => a.Id == agency.Id); scope.Complete(); return agency; } }