public ApplicationStageDO(GvaApplicationStage appStage) { this.Id = appStage.GvaAppStageId; this.StageId = appStage.GvaStage.GvaStageId; this.StageName = appStage.GvaStage.Name; this.Date = appStage.StartingDate; this.InspectorId = appStage.Inspector != null ? appStage.Inspector.LotId : (int?)null; this.InspectorName = appStage.Inspector != null ? appStage.Inspector.Person.Names : null; this.Ordinal = appStage.Ordinal; this.Note = appStage.Note; }
public IHttpActionResult PostStampedDocuments(List<LicenceStageDO> stampedDocuments) { using (var transaction = this.unitOfWork.BeginTransaction()) { foreach (LicenceStageDO document in stampedDocuments) { if (document.ApplicationId.HasValue) { var applicationStages = this.applicationStageRepository.GetApplicationStages(document.ApplicationId.Value); int lastStageOrdinal = applicationStages.Last().Ordinal; var application = this.applicationRepository.GetApplicationById(document.ApplicationId.Value); int? documentDuration = application.ApplicationType.TextContent.Get<int?>("duration"); List<string> newStagesAliases = this.unitOfWork.DbContext.Set<GvaStage>() .Where(s => document.StageAliases.Contains(s.Alias)) .OrderBy(s => s.GvaStageId) .Select(s => s.Alias) .ToList(); foreach (string stageAlias in newStagesAliases) { var stage = this.unitOfWork.DbContext.Set<GvaStage>() .Where(s => s.Alias.Equals(stageAlias)) .Single(); lastStageOrdinal++; var stageTermDate = this.applicationStageRepository.GetApplicationTermDate(document.ApplicationId.Value, stage.GvaStageId); GvaApplicationStage applicationStage = new GvaApplicationStage() { GvaStageId = stage.GvaStageId, StartingDate = DateTime.Now, Ordinal = lastStageOrdinal, GvaApplicationId = document.ApplicationId.Value, StageTermDate = stageTermDate }; this.unitOfWork.DbContext.Set<GvaApplicationStage>().Add(applicationStage); } } else { var lot = lotRepository.GetLotIndex(document.LotId.Value); PartVersion<PersonLicenceEditionDO> licenceEditionPartVersion = lot.Index.GetPart<PersonLicenceEditionDO>(string.Format("licenceEditions/{0}", document.EditionPartIndex.Value)); licenceEditionPartVersion.Content.ОfficiallyReissuedStageId = this.unitOfWork.DbContext.Set<GvaStage>() .Where(s => document.StageAliases.Contains(s.Alias)) .Max(s => s.GvaStageId); lot.UpdatePart<PersonLicenceEditionDO>(string.Format("licenceEditions/{0}", licenceEditionPartVersion.Part.Index), licenceEditionPartVersion.Content, this.userContext); lot.Commit(this.userContext, lotEventDispatcher); this.lotRepository.ExecSpSetLotPartTokens(licenceEditionPartVersion.PartId); } } this.unitOfWork.Save(); transaction.Commit(); } return Ok(); }
public IHttpActionResult PostNewApplicationStage(int appId, ApplicationStageDO appStage) { using (var transaction = this.unitOfWork.BeginTransaction()) { var stageTermDate = this.applicationStageRepository.GetApplicationTermDate(appId, appStage.StageId); GvaStage gvaStage = this.unitOfWork.DbContext.Set<GvaStage>().Find(appStage.StageId); GvaApplicationStage stage = new GvaApplicationStage() { GvaApplicationId = appId, GvaStageId = gvaStage.GvaStageId, StartingDate = appStage.Date, InspectorLotId = appStage.InspectorId, Ordinal = appStage.Ordinal, Note = appStage.Note, StageTermDate = stageTermDate }; GvaApplicationStage applicationStage = this.unitOfWork.DbContext.Set<GvaApplicationStage>().Add(stage); this.unitOfWork.Save(); transaction.Commit(); return Ok(applicationStage); } }