public void ChangeWorkingOrganisation(string organisationId, string userId) { using var context = Context(); if (!context.OrganisationUser.Any(t => t.OrganisationId == organisationId && t.UserId == userId)) { throw new Exception("Access deny"); } var workingOrganisation = context.WorkingOrganisation.FirstOrDefault(u => u.UserId == userId); if (workingOrganisation == null) { workingOrganisation = new Dal.Models.WorkingOrganisation { UserId = userId }; context.WorkingOrganisation.Add(workingOrganisation); } workingOrganisation.OrganisationId = organisationId; context.SaveChanges(); }
public void Create(Organsation organsation, string userId) { using var context = Context(); if (!organsation.DeclareTax) { organsation.OrganisationBaseCurrency.TaxCurrencyId = organsation.OrganisationBaseCurrency.BaseCurrencyId; } if (!string.IsNullOrEmpty(organsation.LogoUrl)) { organsation.LogoUrl = UploadFile(organsation.LogoUrl); } var newOrganisation = new Dal.Models.Organisation { BussinessRegistrationNumber = organsation.DeclareTax?organsation.BussinessRegistrationNumber:"", DeclareTax = organsation.DeclareTax, Description = organsation.Description, DisplayName = organsation.DisplayName, LegalLocalName = organsation.DeclareTax?organsation.LegalLocalName:"", LegalName = organsation.DeclareTax?organsation.LegalName:"", LineBusiness = organsation.LineBusiness, OrganisationTypeId = organsation.OrganisationTypeId, TaxNumber = organsation.DeclareTax?organsation.TaxNumber:"", OrganisationBaseCurrency = new Dal.Models.OrganisationBaseCurrency { BaseCurrencyId = organsation.OrganisationBaseCurrency.BaseCurrencyId, TaxCurrencyId = organsation.OrganisationBaseCurrency.TaxCurrencyId }, Contact = new Dal.Models.Contact { Address = organsation.Contact.Address, ContactName = organsation.Contact.ContactName, Email = organsation.Contact.Email, PhoneNumber = organsation.Contact.PhoneNumber, Website = organsation.Contact.Website, Id = Guid.NewGuid().ToString() }, LogoUrl = organsation.LogoUrl, Id = Guid.NewGuid().ToString() }; var workingOrganisation = context.WorkingOrganisation.FirstOrDefault(u => u.UserId == UserId); if (workingOrganisation == null) { workingOrganisation = new Dal.Models.WorkingOrganisation { UserId = userId, Organisation = newOrganisation }; context.WorkingOrganisation.Add(workingOrganisation); } else { workingOrganisation.Organisation = newOrganisation; } newOrganisation.OrganisationUser.Add(new Dal.Models.OrganisationUser { UserId = userId }); if (organsation.OrganisationBaseCurrency.BaseCurrencyId != organsation.OrganisationBaseCurrency.TaxCurrencyId) { var baseCurrency = new Dal.Models.OrganisationCurrency { CurrencyId = organsation.OrganisationBaseCurrency.BaseCurrencyId }; var taxCurrency = new Dal.Models.OrganisationCurrency { CurrencyId = organsation.OrganisationBaseCurrency.TaxCurrencyId }; newOrganisation.OrganisationCurrency.Add(baseCurrency); newOrganisation.OrganisationCurrency.Add(taxCurrency); context.ExchangeRate.Add(new Dal.Models.ExchangeRate { FromOrganisationCurrency = baseCurrency, ToOrganisationCurrency = taxCurrency, IsAuto = false, ExchangeRate1 = organsation.OrganisationBaseCurrency.TaxExchangeRate }); context.ExchangeRate.Add(new Dal.Models.ExchangeRate { FromOrganisationCurrency = taxCurrency, ToOrganisationCurrency = baseCurrency, IsAuto = false, ExchangeRate1 = 1 / organsation.OrganisationBaseCurrency.TaxExchangeRate }); } else { newOrganisation.OrganisationCurrency.Add(new Dal.Models.OrganisationCurrency { CurrencyId = organsation.OrganisationBaseCurrency.BaseCurrencyId, }); } context.Organisation.Add(newOrganisation); context.SaveChanges(); organsation.Id = newOrganisation.Id; }