public long Registration(RegisterModel register) { var findedDevice=_context.Devices.FirstOrDefault(x => x.Guid.Equals(register.Guid)); if (findedDevice == null) { var platform = _context.Platforms.FirstOrDefault(x => x.PlatformName == register.Platform); if (platform == null) { throw new Exception("Операционная система, которую ты передал, не существует в базе"); } //Устройство регистрируется впервые var newDevice = new Device() {Guid = register.Guid, Name = register.DeviceName, Platform = platform}; _context.Devices.Add(newDevice); findedDevice = newDevice; } var project = _context.Projects.FirstOrDefault(x => x.Name == register.ProjectName); if (project == null) { var newProject=new Project() {Name = register.ProjectName}; _context.Projects.Add(newProject); project = newProject; } //Устройство уже было зарегано когда то. Надо добавить новую регистрацию var newRegistration = new Registration() { AssemblyVersion = register.Version, Device = findedDevice, Project = project, RegistrationTime = DateTime.Now }; _context.Registrations.Add(newRegistration); _context.SaveChanges(); return newRegistration.Id; }
public async Task<IHttpActionResult> Registration(RegisterModel registration) { var registraionId= _deviceRepository.Registration(registration); return SuccessApiResult(registraionId); }