protected override IServiceDocumentDto Create(int performingUserId, IServiceDocumentDto serviceDocument) { using (var context = new PrometheusContext()) { var document = context.ServiceDocuments.ToList().FirstOrDefault(x => x.StorageNameGuid == serviceDocument.StorageNameGuid); if (document != null) { throw new InvalidOperationException(string.Format("Service Document with ID {0} already exists.", serviceDocument.StorageNameGuid)); } var savedDocument = context.ServiceDocuments.Add(ManualMapper.MapDtoToServiceDocument(serviceDocument)); context.SaveChanges(performingUserId); return(ManualMapper.MapServiceDocumentToDto(savedDocument)); } }
protected override IServiceDocumentDto Update(int performingUserId, IServiceDocumentDto entity) { using (var context = new PrometheusContext()) { if (!context.ServiceDocuments.Any(x => x.Id == entity.Id)) { throw new InvalidOperationException( string.Format("Service Document with ID {0} cannot be updated since it does not exist.", entity.Id)); } var updatedServiceDocument = ManualMapper.MapDtoToServiceDocument(entity); context.ServiceDocuments.Attach(updatedServiceDocument); context.Entry(updatedServiceDocument).State = EntityState.Modified; context.SaveChanges(performingUserId); return(ManualMapper.MapServiceDocumentToDto(updatedServiceDocument)); } }
/// <summary> /// Makes a fake Service Document in the DB and returns its ID. /// </summary> /// <param name="serviceId">Service to link to</param> /// <returns></returns> private int CreateFakeDocument(int serviceId) { var fakeDocument = A.Fake <IServiceDocumentDto>(); A.CallTo(() => fakeDocument.ServiceId).Returns(serviceId); A.CallTo(() => fakeDocument.UploadDate).Returns(DateTime.UtcNow); using (var context = new PrometheusContext()) { var document = ManualMapper.MapDtoToServiceDocument(fakeDocument); context.ServiceDocuments.Add(document); context.SaveChanges(); return(document.Id); } }