public async Task <bool> addSlice(SliceAssetDetailDto asset) { SliceAsset assetModel = new SliceAsset(); assetModel.AssetId = asset.AssetId; assetModel.Quantity = asset.Quantity; assetModel.Description = asset.Description; assetModel.TimeAsset = asset.TimeAsset; assetModel.MultiplierInTime = asset.MultiplierInTime; assetModel.AccountId = asset.AccountId; assetModel.ProjectId = asset.ProjectId; assetModel.TypeAssetId = asset.TypeAssetId; assetModel.TermId = asset.TermId; assetModel.AssetStatus = Status.ACTIVE; assetModel.AssetSlice = asset.AssetSlice; assetModel.CompanyId = asset.CompanyId; assetModel.CashPerSlice = asset.CashPerSlice; assetModel.SalaryGapInTime = asset.SalaryGapInTime; _context.SliceAssets.Add(assetModel); try { await _context.SaveChangesAsync(); return(true); } catch (DbUpdateException e) { Debug.WriteLine(e.InnerException.Message); throw; } }
public async Task <ActionResult> CreateProject(String companyID, String shID, SliceAssetDetailDto asset) { try { bool check = await _slice.addSliceSV(companyID, shID, asset); if (check) { return(NoContent()); } else { return(BadRequest()); } } catch (DbUpdateException) { return(Conflict()); } }
public async Task <bool> addSliceSV(String companyID, String userID, SliceAssetDetailDto asset) { string lastid = await _sliceRepository.getLastIDAsset(companyID); string[] splitString = lastid.Split(' '); SalaryGapDto salary = await _shRepository.GetSalaryGap(userID, companyID); double?SalaryGap = salary.ShmarketSalary - salary.Shsalary; double cashPerSlice = await _cpRepository.GetMoneyPerSlice(companyID); if (lastid == null || splitString.Length == 1) { asset.AssetId = companyID + " Asset1"; } else { Regex re = new Regex(@"([a-zA-Z]+)(\d+)"); Match result = re.Match(splitString[1]); string alphaPart = result.Groups[1].Value; string numberPart = result.Groups[2].Value; int numberProject = Int32.Parse(numberPart) + 1; asset.AssetId = splitString[0] + " " + alphaPart + numberProject; } String multiplier = await _typeRepository.GetMultiplierById(Convert.ToInt32(asset.TypeAssetId)); int multiplierInTime; if (multiplier == "NC") { multiplierInTime = await _cpRepository.GetNonCashMP(companyID); } else { multiplierInTime = await _cpRepository.GetCashMP(companyID); } asset.MultiplierInTime = multiplierInTime; asset.SalaryGapInTime = (double)SalaryGap; asset.CashPerSlice = cashPerSlice; switch (asset.TypeAssetId) { case 1: { double ManMonth = asset.Quantity / 160; double Slice = ManMonth * Convert.ToDouble(SalaryGap) / cashPerSlice * multiplierInTime; asset.AssetSlice = Slice; break; } case 2: { double Slice = asset.Quantity / cashPerSlice * multiplierInTime; asset.AssetSlice = Slice; break; } case 3: { double Slice = asset.Quantity / 500000 * multiplierInTime; asset.AssetSlice = Slice; break; } case 4: { double Slice = asset.Quantity / 500000; asset.AssetSlice = Slice; break; } } ; try { await _sliceRepository.addSlice(asset); return(true); } catch (Exception) { return(false); } }