public void Subscribe(int userId, int establishmentId) { var user = _context.User.Include(u => u.Subscriptions).SingleOrDefault(u => userId == u.UserId); var establishment = _context.Establishment.Find(establishmentId); if (user == null) { throw new AuthenticationException("User does not exist"); } if (establishment == null) { throw new AuthenticationException("Establishment does not exist"); } var userEstablishment = new UserEstablishment { UserId = userId, EstablishmentId = establishmentId }; // check if user is already subscribed if (user.Subscriptions.Any(ue => ue.UserId == userEstablishment.UserId && ue.EstablishmentId == establishment.EstablishmentId)) { throw new AuthenticationException("User is already subscribed to this establishment"); } user.Subscriptions.Add(userEstablishment); _context.User.Update(user); _context.SaveChanges(); }
public static string GetRepresentatvieType(this UserEstablishment userEstablishment) { if (userEstablishment == null) { return(string.Empty); } switch (userEstablishment.TypeId) { case 1: return("Owner"); case 2: return("Agent"); case 3: return("Commissioner"); } return(string.Empty); }
public static EstablishmentDto ToDto(this Establishment establishment, EstablishmentKPI establishmentKpi, UserEstablishment userEstablishment) { return(new EstablishmentDto { Name = establishment.Name, Color = establishmentKpi?.Color.Name, CommercialRecordNumber = establishment.CommercialRecordNumber, EconomicActivity = establishment.SubEconomicActivity?.ActivityName, Number = $"{establishment.LaborOfficeId}-{establishment.SequenceNumber}", OwnerIdOrSevenHundred = establishment.GetOwnerIdOrSevenHundred(), WaselAddress = establishment.GetWasselAddress(), Email = establishment.Email, Phone = establishment.GetPhone(), EstablishmentRepresentatvie = new EstablishmentRepresentatvieDto { Email = string.Empty, Mobile = string.Empty, Name = userEstablishment?.Name, Type = userEstablishment?.GetRepresentatvieType() } }); }