public int CreateModule(EditModuleModel editModule, string[] selectedLicenses) { DefaultModule defaultModule = new DefaultModule() { Name = editModule.Name, Description = editModule.Description, Price = editModule.Price }; defaultModuleRepository.Save(defaultModule); if (selectedLicenses != null) { var defaultLicenses = defaultLicenseRepository.GetByNames(selectedLicenses.ToList()); foreach (var license in defaultLicenses) { license.DefaultModules.Add(defaultModule); } defaultLicenseRepository.Save(defaultLicenses.ToList()); var licenses = licenseRepository.GetByDefaultLicenseIds(defaultLicenses.Select(m => m.Id).ToArray()); foreach (var license in licenses) { Module module = new Module() { DefaultModuleId = defaultModule.Id, Price = defaultModule.Price, LicenseId = license.Id, IsActive = false, }; moduleRepository.Save(module); } } return(defaultModule.Id); }