public async Task <UserTask> CompleterUserTask(UserTask usertask) { UsageItem selectedItem = _dbContext.QueryByExpression <UsageItem>(usageItem => usageItem.Id == usertask.UsageItemId).FirstOrDefault(); TimeSpan elapsedTime = TimeSpan.FromSeconds(usertask.ElapsedTimeInSeconds); var userNameParts = _currentLoggedInUser.EmailId.Split(new[] { "@" }, StringSplitOptions.RemoveEmptyEntries); var userName = userNameParts[0]; var newDuration = new Transaction { ClientId = usertask.ClientID, RequestedBy = usertask.RequestedBy, RequestedByWindowsAccount = userName.ToLower(), LocationCode = usertask.LocationCode, TransactionNotes = usertask.Notes, TeamMemberComments = usertask.TeamMemberComments, ConsumedAtDate = usertask.StartDateTime.ToUniversalTime().ToString("u"), UOM = selectedItem.UnitOfMeasure, DurationHours = elapsedTime.Hours, DurationMinutes = elapsedTime.Minutes, DurationSeconds = elapsedTime.Seconds, UnitPrice = selectedItem.UnitPrice, UsageItemId = selectedItem.Id, }; await _restService.Post(RestEndpoint.CreateDuration, newDuration, "Stop or Complete Task", "Error happend while stopping a task"); usertask.Status = UserTaskStatus.Completed; return(usertask); }
/// <summary> /// 新增用法 /// </summary> public void SaveUsageItem() { try { UsageItem item = new UsageItem( ); item.Name = formView.UsageName; item.Unit = formView.UsageUnit; item.Py_Code = formView.UsagePyCode; item.Wb_Code = formView.UsageWbCode; item.PrintLongOrder = formView.PrintLong; item.PrintTempOrder = formView.PrintTemp; item.DeleteBit = formView.DeleteBit; item.AssociatedItems = formView.AssociatedItems; ServiceItemController controller = new ServiceItemController( ); if (controller.ItemNameExists(item)) { throw new Exception("用法名称【" + item.Name + "】已经存在"); } controller.AddUsageItem(item); tbUsagediction = BaseDataReader.GetUsageDictionList( ); } catch (Exception err) { throw err; } }
/// <summary> /// Depletions the interface. /// </summary> /// <returns>Task.</returns> private static async Task DepletionInterface() { //Only Facility No is required for usage creation var usageA = new Usage { FacilityNo = "Facility No" }; var usageB = new Usage { FacilityNo = "Facility No" }; var usageList = new List <Usage> { usageA, usageB }; // Result is list of usage Ids joined by ',' separator var usages = PostUsages(usageList).Result.Split(',').ToList(); var usagePK = Guid.Parse(usages.FirstOrDefault()); // Usage Id is required for item insert, in this case free-form item will be created var usageLineItemA = new UsageItem { UsageId = usagePK }; var usageLineItemB = new UsageItem { UsageId = usagePK }; var usageLineItemList = new List <UsageItem> { usageLineItemA, usageLineItemB }; await PostUsageItems(usageLineItemList); // Usage ID and Procedure No are required for usage procedure creation var usageProcedureA = new UsageProcedure { UsageId = usagePK, ProcedureNo = "ProcedureNo A" }; var usageProcedureB = new UsageProcedure { UsageId = usagePK, ProcedureNo = "ProcedureNo B" }; var usageProcedureList = new List <UsageProcedure> { usageProcedureA, usageProcedureB }; await PostUsageProcedures(usageProcedureList); // Usage Id is required for usage submit var usageSubmitA = new Usage { UsageId = usagePK }; var usageSubmitB = new Usage { UsageId = Guid.Parse(usages[1]) }; var usageSubmitList = new List <Usage> { usageSubmitA, usageSubmitB }; // Result is list of dictionary <Guid,string>, where Guid is unsubmitted usage Id and message with error description // In success case result will be empty var result = SubmitUsages(usageSubmitList).Result; }
public IActionResult UseMachine(UsageItem useItem) { IActionResult result = Unauthorized(); try { result = Ok(_db.LogEquipmentUsage(useItem)); } catch (Exception) { result = BadRequest(new { Message = "Failed to log machine use" }); } return(result); }
private async void OnCreateTask(UsageItem selectedUsageItem) { var newTask = await GetNewTask(); newTask.ClientID = _selectedClient.ClientId; newTask.ClientName = _selectedClient.ClientName; newTask.UsageItemId = selectedUsageItem.Id; newTask.UsageItemName = selectedUsageItem.ItemName; newTask.LocationCode = selectedUsageItem.LocationCode; newTask.Status = UserTaskStatus.Pending; this.Publish(new CreateUserTask(newTask)); this.Publish <NavigateToHomePage>(); }
public JsonResult GetUsage(string SubscriptionId, DateTime?StartDate = null, DateTime?EndDate = null, string Granularity = "daily", bool ShowDetails = false, int Count = 1000) { if (!StartDate.HasValue) { StartDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); } if (!EndDate.HasValue) { EndDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); } if (resellerService.rateCard.Meters == null) { resellerService.rateCard = crestService.GetRateCard(); } UsageRecord usage = crestService.GetUsage(SubscriptionId, StartDate.Value, EndDate.Value, Granularity, ShowDetails, Count); List <UsageItemViewModel> usageItems = new List <UsageItemViewModel>(); if (ShowDetails) { foreach (UsageItem i in usage.items.OrderBy(x => x.meter_category).ThenBy(x => x.meter_sub_category).ThenBy(x => x.meter_name)) { usageItems.Add(new UsageItemViewModel { item = i, meter = GetMeter(i.meter_id) }); } } else { IEnumerable <IGrouping <string, UsageItem> > query = usage.items.OrderBy(x => x.meter_category).ThenBy(x => x.meter_sub_category).ThenBy(x => x.meter_name).GroupBy(i => i.meter_id, i => i); foreach (IGrouping <string, UsageItem> itemGroup in query) { UsageItem u = itemGroup.FirstOrDefault(); u.quantity = itemGroup.Sum(x => x.quantity); u.usage_start_time = itemGroup.Min(d => d.usage_start_time); u.usage_end_time = itemGroup.Max(d => d.usage_end_time); usageItems.Add(new UsageItemViewModel { item = u, meter = GetMeter(itemGroup.Key) }); } } return(Json(new { Result = "OK", Records = usageItems, TotalRecordCount = usageItems.Count })); }
/// <summary> /// 更新用法 /// </summary> public void UpdateUsageItem() { try { UsageItem item = new UsageItem( ); item.ID = formView.CurrentSelectedUsageID; item.Name = formView.UsageName; item.Unit = formView.UsageUnit; item.Py_Code = formView.UsagePyCode; item.Wb_Code = formView.UsageWbCode; item.PrintLongOrder = formView.PrintLong; item.PrintTempOrder = formView.PrintTemp; item.DeleteBit = formView.DeleteBit; item.AssociatedItems = formView.AssociatedItems; ServiceItemController controller = new ServiceItemController( ); if (controller.ItemNameExists(item)) { throw new Exception("用法名称【" + item.Name + "】已经存在"); } controller.UpdateUsageItem(item); DataRow[] drs = BaseDataReader.GetUsageDictionList( ).Select("ID=" + formView.CurrentSelectedUsageID); if (drs.Length > 0) { DataRow[] drs2 = tbUsagediction.Select("ID=" + formView.CurrentSelectedUsageID); if (drs2.Length > 0) { drs2[0].ItemArray = drs[0].ItemArray; } } tbUsageFee = BaseDataReader.GetUsageFee( ); } catch (Exception err) { throw err; } }
public void Init() { instance = new UsageItem(); }