/// <summary> /// Updates the object from the UI and saves any changes. /// </summary> private void SaveChanges() { // Check for new object if (string.IsNullOrEmpty(_badge.BadgeId)) { _badge.BadgeId = textBox_BadgeId.Text; _context.Badges.Add(_badge); } _badge.Description = textBox_Descr.Text; _badge.UserName = textBox_Username.Text; _badge.Index = byte.Parse(textBox_Index.Text); if (comboBox_BadgeBox.SelectedIndex > 0) { _badge.BadgeBoxId = (string)comboBox_BadgeBox.SelectedValue; } else // No Badge Box selected { _badge.BadgeBoxId = null; } if (_context.Entry(_badge).State == EntityState.Modified || _context.Entry(_badge).State == EntityState.Added) { _context.SaveChanges(); } }
private void button_Ok_Click(object sender, EventArgs e) { using (new BusyCursor()) { if (ValidateInput()) { AssetConfigurationController controller = new AssetConfigurationController(_context); _simulator.AssetId = textBox_AssetId.Text; _simulator.Product = textBox_Product.Text; _simulator.Address = textBox_Address.Text; _simulator.VirtualMachine = textBox_VmName.Text; _simulator.FirmwareVersion = textBox_Firmware.Text; _simulator.Password = textBox_Password.Text; _simulator.SimulatorType = comboBox_Type.Text; _simulator.Pool = controller.GetDefaultAssetPool(); try { int capability = 0; foreach (CheckBox checkBox in _capabilityControls) { if (checkBox.Checked) { capability += int.Parse(checkBox.Tag.ToString()); } } _simulator.Capability = (AssetAttributes)capability; } catch (FormatException ex) { TraceFactory.Logger.Error("Unable to Parse Simulator Capability. Make sure the CheckBox.Tag property is set on all Capability Checkboxes.", ex); MessageBox.Show("Unable to determine Simulator Capability.", "Save Changes", MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.Abort; return; } if (_context.Entry(_simulator).State == EntityState.Detached) { // New Simulator _context.Assets.Add(_simulator); } _context.SaveChanges(); DialogResult = DialogResult.OK; } } }
/// <summary> /// Updates the object from the UI and saves any changes. /// </summary> private void SaveChanges() { // Check for new object if (string.IsNullOrEmpty(_badgeBox.BadgeBoxId)) { _badgeBox.BadgeBoxId = textBox_BadgeBoxId.Text; _context.BadgeBoxes.Add(_badgeBox); } _badgeBox.Description = textBox_Descr.Text; _badgeBox.IPAddress = textBox_Address.Text; _badgeBox.PrinterId = textBox_PrinterId.Text; if (_context.Entry(_badgeBox).State == EntityState.Modified || _context.Entry(_badgeBox).State == EntityState.Added) { _context.SaveChanges(); } }
private void okButton_Click(object sender, EventArgs e) { if (ValidateInput()) { _printer.Location = location_ComboBox.Text; _printer.Product = manufacturer_ComboBox.Text; _printer.Model = modelName_ComboBox.Text; _printer.ModelNumber = modelNumber_ComboBox.Text; _printer.Owner = contact_ComboBox.Text; _printer.AssetId = assetId_TextBox.Text; _printer.Description = description_TextBox.Text; _printer.Address1 = address1_Control.Text; _printer.Address2 = address2_Control.Text; _printer.SerialNumber = serialNumber_TextBox.Text; _printer.Password = adminPassword_TextBox.Text; try { int capability = 0; foreach (CheckBox checkBox in _capabilityControls) { if (checkBox.Checked) { capability += int.Parse(checkBox.Tag.ToString()); } } _printer.Capability = (AssetAttributes)capability; } catch (FormatException ex) { TraceFactory.Logger.Error("Unable to Parse Printer Capability. Make sure the CheckBox.Tag property is set on all Capability Checkboxes.", ex); MessageBox.Show("Unable to determine Printer Capability.", "Save Changes", MessageBoxButtons.OK, MessageBoxIcon.Error); DialogResult = DialogResult.Abort; return; } if (_context.Entry(_printer).State == EntityState.Detached) { // New Printer _context.Assets.Add(_printer); } _context.SaveChanges(); DialogResult = DialogResult.OK; } }
private void okButton_Click(object sender, EventArgs e) { if (ValidateInput()) { _mobileDevice.MobileEquipmentId = connectionId_TextBox.Text; _mobileDevice.MobileDeviceType = type_ComboBox.Text; _mobileDevice.Description = description_TextBox.Text; if (_context.Entry(_mobileDevice).State == EntityState.Detached) { //New Mobile Device _mobileDevice.AssetId = assetId_TextBox.Text; _context.Assets.Add(_mobileDevice); } _context.SaveChanges(); DialogResult = DialogResult.OK; } }
private void okButton_Click(object sender, EventArgs e) { if (ValidateInput()) { _camera.AssetId = assetId_TextBox.Text; _camera.Description = description_TextBox.Text; _camera.IPAddress = ipAddress_Control.Text; _camera.CameraServer = cameraServer_TextBox.Text; _camera.PrinterId = printerId_TextBox.Text; if (_context.Entry(_camera).State == EntityState.Detached) { //New Camera _context.Assets.Add(_camera); } _context.SaveChanges(); DialogResult = DialogResult.OK; } }
public ActionResult Edit(int id) { Asset asset = db.Assets.Find(id); if (ModelState.IsValid) { db.Entry(asset).State = EntityState.Modified; ActionLog aLog = new ActionLog { Action = "Edit", AssetId = asset.Id, UserName = User.Identity.Name, Notes = Request.Form["Notes"] //TODO: Проверить значение }; db.ActionLogs.Add(aLog); db.SaveChanges(); } //ViewBag.Error = "Не удалось изменить запись в базе данных!"; return(RedirectToAction("Index")); }
/// <summary> /// Commits changes to the inventory /// </summary> public void Commit() { foreach (var entity in _deletedItems) { _context.FrameworkServers.Remove(entity); } foreach (var server in _servers) { switch (_context.Entry(server).State) { case EntityState.Added: case EntityState.Detached: { _context.FrameworkServers.Add(server); break; } } } _context.SaveChanges(); _deletedItems.Clear(); }
/// <summary> /// Creates asset reservations for the specified time period. /// Attempts to reserve devices for the entire period, but will create a partial reservation /// if the device is not available for the entire time. /// </summary> /// <param name="assetIds">The assets to reserve.</param> /// <param name="sessionId">The session ID to reserve for.</param> /// <param name="reservationKey">The reservation key indicating which existing reservations may be used.</param> /// <param name="requestedStart">The requested start.</param> /// <param name="requestedEnd">The requested end.</param> /// <returns>A collection of <see cref="AssetReservationResult" /> describing the reservations that could be made.</returns> /// <exception cref="ArgumentNullException"><paramref name="assetIds" /> is null.</exception> public IEnumerable <AssetReservationResult> ReserveAssets(IEnumerable <string> assetIds, string sessionId, string reservationKey, DateTime requestedStart, DateTime requestedEnd) { if (assetIds == null) { throw new ArgumentNullException(nameof(assetIds)); } List <AssetReservationResult> results = new List <AssetReservationResult>(); using (AssetInventoryContext context = new AssetInventoryContext(_connectionString)) { //Include associated Assets, like Cameras List <string> assetIdsFinal = assetIds.ToList(); assetIdsFinal.AddRange(GetAssociatedCameras(context, assetIds)); LogInfo($"Reserving {assetIdsFinal.Count()} assets for session {sessionId}."); // Get all the data from the database at once, but then loop through the requested IDs to see if there are any missing List <Asset> assets = context.Assets.Include(n => n.Pool).Include(n => n.Reservations).Where(n => assetIdsFinal.Contains(n.AssetId)).ToList(); foreach (string assetId in assetIdsFinal) { Asset asset = assets.FirstOrDefault(n => n.AssetId == assetId); if (asset != null) { CreateReservations(asset, sessionId, reservationKey, requestedStart, requestedEnd); AssetReservationResult result = GetReservationResult(asset, sessionId, requestedStart, requestedEnd); results.Add(result); } else { // Asset was not found in database LogWarn($"Asset {assetId} was not found in Asset Inventory database."); results.Add(new AssetReservationResult(assetId, AssetAvailability.Unknown)); } } // Update ReservationHistory where configured to do so foreach (Asset asset in assets.Where(n => n.Pool.TrackReservations == true)) { foreach (AssetReservation reservation in asset.Reservations.Where(n => context.Entry(n).State == EntityState.Added)) { context.ReservationHistory.Add(new ReservationHistory(reservation)); } } // Commit the reservations to the database try { context.SaveChanges(); } catch (DbUpdateException ex) when(ex.InnerException?.InnerException?.Message?.Contains(_duplicateReservationConstraint) == true) { // This may happen due to concurrency conflicts, e.g. somebody else creates a reservation // after we have retrieved the existing reservations from the database but before we attempt to save them back. throw new ResourceReservationException("Failed to create reservation due to a conflict with an existing reservation.", ex); } } return(results); }