public async Task <QueueResult> Handle(string data) { QueueResult result = new QueueResult(Data.Enums.ProcessType.AddTenant); if (string.IsNullOrEmpty(data)) { result.ExceptionCode = ExceptionCode.MissingQueueData; } TenantQueue tenantQueue = null; try { tenantQueue = JsonConvert.DeserializeObject <TenantQueue>(data); TenantLogic tenantLogic = new TenantLogic(this.db, result.AdditionalData, this.loggerFactory); var tenantId = await tenantLogic.AddTenant(tenantQueue); result.AdditionalData.Add("tenantId", tenantId.ToString()); result.AdditionalData.Add("name", tenantQueue.Name); result.Status = Status.Success; } catch (Exception ex) { HandleException(ex, result, tenantQueue); } return(result); }
/* Event create */ public void CreateEvent_NewTenant(TenantGenerator generator, TenantQueue queue) { // Compute event occurence time int time = Time + m_generatorsDistr[queue.Floor].GetValue(); m_scheduler.Add(new NewTenantEvent(time, this, generator, queue)); }
public void CreateEvent_Pickup(Elevator elevator) { // Get associated queue TenantQueue queue = QueuesController.Get(elevator.CurrentFloor); if (queue.IsHallcall(elevator.Direction) && elevator.FreePlace > 0) { m_scheduler.Add(new PickupEvent(Time, this, queue, elevator)); } }
public async Task EditTenant(TenantQueue tenantQueue) { await CheckAddEdit(tenantQueue); Tenant tenant = await this.db.GetTenantById(tenantQueue.Id.Value).FirstOrDefaultAsync(); tenant.Name = tenantQueue.Name; tenant.Status = tenantQueue.Status; await this.db.SaveChangesAsync(); this.logger.LogCustomInformation($"Tenant '{tenant.Name}' with id '{tenant.Id}' has successfully updated", tenantQueue.TenantId.ToString(), tenantQueue.UserPerformingAction.ToString()); }
public async Task <Guid> AddTenant(TenantQueue tenantQueue) { await CheckAddEdit(tenantQueue); Tenant tenant = new Tenant() { Name = tenantQueue.Name, Status = tenantQueue.Status }; this.db.Tenants.Add(tenant); await this.db.SaveChangesAsync(); this.logger.LogCustomInformation($"Tenant '{tenant.Name}' with id '{tenant.Id}' has successfully created", tenantQueue.TenantId.ToString(), tenantQueue.UserPerformingAction.ToString()); return(tenant.Id); }
public async Task EditTenant(TenantVM tenant) { TenantQueue officeQueue = Mapper.Map <TenantVM, TenantQueue>(tenant, options => { options.AfterMap((src, dest) => dest.UserPerformingAction = this.UserId); options.AfterMap((src, dest) => dest.TenantId = this.TenantId); }); ProcessQueueHistory processQueueHistory = new ProcessQueueHistory() { Data = JsonConvert.SerializeObject(officeQueue), AddedById = this.UserId, TenantId = this.TenantId, Status = Data.Enums.ResultStatus.Waiting, Type = Data.Enums.ProcessType.EditTenant }; await this.queueHandler.AddToQueue(processQueueHistory); }
public void Link(TenantQueue queue) { m_queue = queue; m_queue.Changed += Update; }
private async Task CheckAddEdit(TenantQueue tenantQueue) { await CheckForSameName(tenantQueue.Name.Trim(), tenantQueue.Id); }
public void Remove(TenantQueue queue) { m_queues.Remove(queue.Floor); }
public void Add(TenantQueue queue) { m_queues.Add(queue.Floor, queue); }