Bereits existierendes Images weiter ausbauen - Verweis auf Wohneinheiten
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel MouseDown="StackPanel_MouseDown">
|
||||
<Image Source="{Binding ImageData}" Height="150" Stretch="Uniform"></Image>
|
||||
<Image Source="{Binding Original}" Height="150" Stretch="Uniform"></Image>
|
||||
<Label Content="{Binding Filename}" HorizontalAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
|
||||
@@ -64,7 +64,7 @@ namespace BeWo.View.Detail.Wohneinheit
|
||||
|
||||
vm.Filename = info.Name;
|
||||
vm.Fullname = info.FullName;
|
||||
vm.ImageData = File.ReadAllBytes(info.FullName);
|
||||
vm.Original = File.ReadAllBytes(info.FullName);
|
||||
|
||||
Images.VMList.Add(vm);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Windows.Media.Imaging;
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
|
||||
namespace BeWo.ViewModel
|
||||
@@ -9,7 +10,9 @@ namespace BeWo.ViewModel
|
||||
{
|
||||
private string _Filename;
|
||||
private string _Fullname;
|
||||
private byte[] _ImageData;
|
||||
private byte[] _Original;
|
||||
private byte[] _MediumThumbnail;
|
||||
private byte[] _SmallThumbnail;
|
||||
|
||||
public ImageVM() : this(new ImageDC())
|
||||
{
|
||||
@@ -33,7 +36,6 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(Filename));
|
||||
}
|
||||
}
|
||||
|
||||
public string Fullname
|
||||
{
|
||||
get { return _Fullname; }
|
||||
@@ -47,55 +49,35 @@ namespace BeWo.ViewModel
|
||||
FirePropertyChanged(nameof(Fullname));
|
||||
}
|
||||
}
|
||||
|
||||
public byte[] ImageData
|
||||
public byte[] Original
|
||||
{
|
||||
get { return _ImageData; }
|
||||
get { return _Original; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_ImageData, value))
|
||||
if (!AreDifferent(_Original, value))
|
||||
return;
|
||||
|
||||
_ImageData = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.ImageData, value), nameof(ImageData));
|
||||
FirePropertyChanged(nameof(ImageData));
|
||||
_Original = value;
|
||||
StoreDirtyInformation(AreDifferent(DataContract.Original, value), nameof(Original));
|
||||
FirePropertyChanged(nameof(Original));
|
||||
FirePropertyChanged(nameof(BitmapImage));
|
||||
}
|
||||
}
|
||||
|
||||
public BitmapImage BitmapImage
|
||||
{
|
||||
get
|
||||
{
|
||||
if (ImageData != null)
|
||||
{
|
||||
using (var ms = new System.IO.MemoryStream(ImageData))
|
||||
{
|
||||
var image = new BitmapImage();
|
||||
image.BeginInit();
|
||||
image.CacheOption = BitmapCacheOption.OnLoad; // here
|
||||
image.StreamSource = ms;
|
||||
image.EndInit();
|
||||
return image;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public BitmapImage BitmapImage => Utils.CreateBitmapImageFromByteArray(Original);
|
||||
|
||||
protected override void InitByDataContract(ImageDC pDataContract)
|
||||
{
|
||||
_Filename = pDataContract.Filename;
|
||||
_Fullname = pDataContract.Fullname;
|
||||
_ImageData = pDataContract.ImageData;
|
||||
_Original = pDataContract.Original;
|
||||
}
|
||||
|
||||
protected override ImageDC MapToDataContract(ImageDC pDataContract, bool doCommit)
|
||||
{
|
||||
pDataContract.Filename = _Filename;
|
||||
pDataContract.Fullname = _Fullname;
|
||||
pDataContract.ImageData = _ImageData;
|
||||
pDataContract.Original = _Original;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
@@ -220,7 +220,6 @@
|
||||
<Compile Include="Entities\GeschenkterUrlaubstag.cs" />
|
||||
<Compile Include="Entities\GkvTransferprotokoll.cs" />
|
||||
<Compile Include="Entities\GoalRating.cs" />
|
||||
<Compile Include="Entities\ImageSimple.cs" />
|
||||
<Compile Include="Entities\Preis.cs" />
|
||||
<Compile Include="Entities\Quittierungsbelegsstatus.cs" />
|
||||
<Compile Include="Entities\Rating.cs" />
|
||||
|
||||
@@ -13,11 +13,10 @@ namespace BeWo.Data.Entities
|
||||
_Tid = TableID.Image;
|
||||
}
|
||||
|
||||
public virtual byte[] Original { get; set; }
|
||||
|
||||
public virtual string Filename { get; set; }
|
||||
public virtual string Fullname { get; set; }
|
||||
public virtual byte[] Original { get; set; }
|
||||
public virtual byte[] MediumThumbnail { get; set; }
|
||||
|
||||
public virtual byte[] SmallThumbnail { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
|
||||
namespace BeWo.Data.Entities
|
||||
{
|
||||
public class ImageSimple : BeWoEntityBase
|
||||
{
|
||||
private BeWoEntityBase _Parent;
|
||||
|
||||
private string _Filename;
|
||||
private string _Fullname;
|
||||
private byte[] _ImageData;
|
||||
|
||||
public ImageSimple()
|
||||
{
|
||||
_Tid = TableID.ImageSimple;
|
||||
}
|
||||
|
||||
public virtual BeWoEntityBase Parent
|
||||
{
|
||||
get { return _Parent; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_Parent, value))
|
||||
return;
|
||||
|
||||
_Parent = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string Filename
|
||||
{
|
||||
get { return _Filename; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_Filename, value))
|
||||
return;
|
||||
|
||||
_Filename = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string Fullname
|
||||
{
|
||||
get { return _Fullname; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_Fullname, value))
|
||||
return;
|
||||
|
||||
_Fullname = value;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual byte[] ImageData
|
||||
{
|
||||
get { return _ImageData; }
|
||||
set
|
||||
{
|
||||
if (!AreDifferent(_ImageData, value))
|
||||
return;
|
||||
|
||||
_ImageData = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,6 +41,7 @@ namespace BeWo.Data.Entities
|
||||
private string _Zusatznotiz;
|
||||
private string _Stock;
|
||||
private IList<WohneinheitBelegung> _Belegungen;
|
||||
private IList<Image> _Grundrisse;
|
||||
|
||||
public Wohneinheit()
|
||||
{
|
||||
@@ -286,6 +287,21 @@ namespace BeWo.Data.Entities
|
||||
this._Belegungen = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public virtual IList<Image> Grundrisse
|
||||
{
|
||||
get
|
||||
{
|
||||
return _Grundrisse;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
if (AreDifferent(_Grundrisse, value))
|
||||
{
|
||||
_Grundrisse = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,8 +13,10 @@
|
||||
<property column="UpdUser" type="String" name="UdpUser" length="256" />
|
||||
<property column="IsActive" type="BS.Shared.ActivationTypeId, BS.Shared" name="IsActive" />
|
||||
<property column="SystemEntryID" type="BS.Shared.SystemEntryID, BS.Shared" name="SystemEntryID" />
|
||||
<property column="Original" name="Original" />
|
||||
<property column="MediumThumbnail" name="MediumThumbnail" />
|
||||
<property column="SmallThumbnail" name="SmallThumbnail" />
|
||||
<property name="Filename" />
|
||||
<property name="Fullname" />
|
||||
<property name="Original" />
|
||||
<property name="MediumThumbnail" />
|
||||
<property name="SmallThumbnail" />
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
@@ -32,5 +32,9 @@
|
||||
<key column="WohneinheitOid" />
|
||||
<one-to-many class="BeWo.Data.Entities.WohneinheitBelegung,BeWo.Data" />
|
||||
</bag>
|
||||
<bag name="Grundrisse" table="Image" generic="true" cascade="all-delete-orphan">
|
||||
<key column="WohneinheitOid" />
|
||||
<one-to-many class="BeWo.Data.Entities.Image, BeWo.Data" />
|
||||
</bag>
|
||||
</class>
|
||||
</hibernate-mapping>
|
||||
25
Model/Changes_2024_08_27 Wohneinheit Grundrisse.txt
Normal file
25
Model/Changes_2024_08_27 Wohneinheit Grundrisse.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
ALTER TABLE `image`
|
||||
DROP FOREIGN KEY `FK_EMPLOYEE`,
|
||||
DROP FOREIGN KEY `FK_CUSTOMER`;
|
||||
ALTER TABLE `image`
|
||||
DROP COLUMN `EmployeeOid`,
|
||||
DROP COLUMN `CustomerOid`,
|
||||
ADD COLUMN `WohneinheitOid` BIGINT NULL DEFAULT NULL AFTER `PersonOid`,
|
||||
DROP INDEX `KEY_EMPLOYEE` ,
|
||||
DROP INDEX `KEY_CUSTOMER` ;
|
||||
;
|
||||
ALTER TABLE `image`
|
||||
ADD CONSTRAINT `FK_IMAGE_PERSON`
|
||||
FOREIGN KEY (`Oid`)
|
||||
REFERENCES `person` (`Oid`)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT `FK_IMAGE_WOHNEINHEIT`
|
||||
FOREIGN KEY (`Oid`)
|
||||
REFERENCES `wohneinheit` (`Oid`)
|
||||
ON DELETE CASCADE
|
||||
ON UPDATE CASCADE;
|
||||
;
|
||||
ALTER TABLE `image`
|
||||
ADD COLUMN `Filename` VARCHAR(1024) NULL DEFAULT NULL AFTER `SystemEntryID`,
|
||||
ADD COLUMN `Fullname` VARCHAR(1024) NULL DEFAULT NULL AFTER `Filename`;
|
||||
48
Service/DCEntityMapper/ImageDC_Image.cs
Normal file
48
Service/DCEntityMapper/ImageDC_Image.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Wohnhilfe;
|
||||
|
||||
namespace BeWo.Service.DCEntityMapper
|
||||
{
|
||||
public class ImageDC_Image : AbstractIDCEntityMapper<Image, ImageDC>
|
||||
{
|
||||
public override ImageDC MergeWithDC(Image pEntity, ImageDC pDataContract)
|
||||
{
|
||||
pDataContract.Filename = pEntity.Filename;
|
||||
pDataContract.Fullname = pEntity.Fullname;
|
||||
pDataContract.Original = pEntity.Original;
|
||||
pDataContract.SmallThumbnail = pEntity.SmallThumbnail;
|
||||
pDataContract.MediumThumbnail = pEntity.MediumThumbnail;
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
public override Image MergeWithEntity(ImageDC pDataContract, Image pEntity)
|
||||
{
|
||||
pEntity.Filename = pDataContract.Filename;
|
||||
pEntity.Fullname = pDataContract.Fullname;
|
||||
pEntity.Original = pDataContract.Original;
|
||||
pEntity.SmallThumbnail = pDataContract.SmallThumbnail;
|
||||
pEntity.MediumThumbnail = pDataContract.MediumThumbnail;
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
protected override bool AreDCAndEntityEqual(ImageDC pDC, Image pEntity)
|
||||
{
|
||||
if (pDC.Oid == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return pDC.Oid == pEntity.Oid;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
using BeWo.Data.Access;
|
||||
using BeWo.Data.Entities;
|
||||
|
||||
using BS.Shared;
|
||||
using BS.Shared.Core;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Wohnhilfe;
|
||||
|
||||
namespace BeWo.Service.DCEntityMapper
|
||||
{
|
||||
public class ImageDC_ImageSimple : AbstractIDCEntityMapper<ImageSimple, ImageDC>
|
||||
{
|
||||
public ImageDC MergeWithDC(ImageSimple pEntity, ImageDC pDataContract, WohneinheitDC wohneinheit)
|
||||
{
|
||||
pDataContract.Filename = pEntity.Filename;
|
||||
pDataContract.Fullname = pEntity.Fullname;
|
||||
pDataContract.ImageData = pEntity.ImageData;
|
||||
|
||||
if (wohneinheit.Grundrisse is null)
|
||||
wohneinheit.Grundrisse = new List<ImageDC>();
|
||||
|
||||
wohneinheit.Grundrisse.Add(pDataContract);
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
public ImageSimple MergeWithEntity(ImageDC pDataContract, ImageSimple pEntity, Wohneinheit wohneinheit)
|
||||
{
|
||||
pEntity.Filename = pDataContract.Filename;
|
||||
pEntity.Fullname = pDataContract.Fullname;
|
||||
pEntity.ImageData = pDataContract.ImageData;
|
||||
|
||||
pEntity.Parent = wohneinheit;
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
public override ImageDC MergeWithDC(ImageSimple pEntity, ImageDC pDataContract)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
public override ImageSimple MergeWithEntity(ImageDC pDataContract, ImageSimple pEntity)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
|
||||
protected override bool AreDCAndEntityEqual(ImageDC pDC, ImageSimple pEntity)
|
||||
{
|
||||
throw new System.NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -304,7 +304,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
private static FalldatenDC_CustomerFalldaten _FalldatenDC_CustomerFalldaten;
|
||||
|
||||
private static ImageDC_ImageSimple _ImageDC_ImageSimple;
|
||||
private static ImageDC_Image _ImageDC_Image;
|
||||
|
||||
public static MedRecordDC_MedRecord MedRecordDC_MedRecord =>
|
||||
_MedRecordDC_MedRecord ?? (_MedRecordDC_MedRecord = new MedRecordDC_MedRecord());
|
||||
@@ -766,7 +766,7 @@ namespace BeWo.Service.DCEntityMapper
|
||||
public static FalldatenDC_CustomerFalldaten FalldatenDC_CustomerFalldaten =>
|
||||
_FalldatenDC_CustomerFalldaten ?? (_FalldatenDC_CustomerFalldaten = new FalldatenDC_CustomerFalldaten());
|
||||
|
||||
public static ImageDC_ImageSimple ImageDC_ImageSimple =>
|
||||
_ImageDC_ImageSimple ?? (_ImageDC_ImageSimple = new ImageDC_ImageSimple());
|
||||
public static ImageDC_Image ImageDC_Image =>
|
||||
_ImageDC_Image ?? (_ImageDC_Image = new ImageDC_Image());
|
||||
}
|
||||
}
|
||||
@@ -245,7 +245,6 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
pEntity.Images.Add(image);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
MapperFactory.ContactDC_Contact.MergeWithEntitys(pDataContract.ContactInformations, pEntity.Contacts);
|
||||
|
||||
@@ -47,6 +47,9 @@ namespace BeWo.Service.DCEntityMapper
|
||||
if (pEntity.Belegungen is object && pEntity.Belegungen.Any())
|
||||
pDataContract.Belegungen = MapperFactory.WohneinheitBelegungDC_WohneinheitBelegung.MapToNewDCs(pEntity.Belegungen);
|
||||
|
||||
if (pEntity.Grundrisse is object && pEntity.Grundrisse.Any())
|
||||
pDataContract.Grundrisse = MapperFactory.ImageDC_Image.MapToNewDCs(pEntity.Grundrisse);
|
||||
|
||||
return pDataContract;
|
||||
}
|
||||
|
||||
@@ -75,6 +78,11 @@ namespace BeWo.Service.DCEntityMapper
|
||||
|
||||
MapperFactory.WohneinheitBelegungDC_WohneinheitBelegung.MergeWithEntitys(pDataContract.Belegungen, pEntity.Belegungen, pEntity);
|
||||
|
||||
if (pEntity.Grundrisse is null)
|
||||
pEntity.Grundrisse = new List<Image>();
|
||||
|
||||
MapperFactory.ImageDC_Image.MergeWithEntitys(pDataContract.Grundrisse, pEntity.Grundrisse);
|
||||
|
||||
return pEntity;
|
||||
}
|
||||
|
||||
|
||||
@@ -227,7 +227,7 @@
|
||||
<Compile Include="DCEntityMapper\AddressRouteDC_AddressRoute.cs" />
|
||||
<Compile Include="DCEntityMapper\BargeldtransaktionshistoryDC_Bargeldtransaktionshistory.cs" />
|
||||
<Compile Include="DCEntityMapper\ConfirmationReceiptSignatureDC_ConfirmationReceiptSignature.cs" />
|
||||
<Compile Include="DCEntityMapper\ImageDC_ImageSimple.cs" />
|
||||
<Compile Include="DCEntityMapper\ImageDC_Image.cs" />
|
||||
<Compile Include="DCEntityMapper\FalldatenDC_CustomerFalldaten.cs" />
|
||||
<Compile Include="DCEntityMapper\DienstvertretungDC_Dienstvertretung.cs" />
|
||||
<Compile Include="DCEntityMapper\DokumentvorlageDC_Dokumentvorlage.cs" />
|
||||
|
||||
@@ -9,6 +9,7 @@ using System.IO.Compression;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Xml.Serialization;
|
||||
using BS.Shared.DataContracts;
|
||||
using BS.Shared.DataContracts.Compact;
|
||||
@@ -496,6 +497,26 @@ namespace BS.Shared.Core
|
||||
}
|
||||
}
|
||||
|
||||
public static BitmapImage CreateBitmapImageFromByteArray(byte[] array)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var ms = new MemoryStream(array))
|
||||
{
|
||||
var image = new BitmapImage();
|
||||
image.BeginInit();
|
||||
image.CacheOption = BitmapCacheOption.OnLoad; // here
|
||||
image.StreamSource = ms;
|
||||
image.EndInit();
|
||||
return image;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Image ResizeImage(Image original, Size size)
|
||||
{
|
||||
var newSize = CalcSize(original.Width, original.Height, size.Width, size.Height);
|
||||
|
||||
@@ -8,7 +8,6 @@ using System.Windows.Media.Imaging;
|
||||
|
||||
namespace BS.Shared.DataContracts
|
||||
{
|
||||
[DataContract]
|
||||
public class ImageDC : BeWoDataContract
|
||||
{
|
||||
// Server DC_Entity_Mapping bis Datenbank wichtig
|
||||
@@ -17,6 +16,8 @@ namespace BS.Shared.DataContracts
|
||||
|
||||
[DataMember] public string Filename { get; set; }
|
||||
[DataMember] public string Fullname { get; set; }
|
||||
[DataMember] public byte[] ImageData { get; set; }
|
||||
[DataMember] public byte[] Original { get; set; }
|
||||
[DataMember] public byte[] MediumThumbnail { get; set; }
|
||||
[DataMember] public byte[] SmallThumbnail { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user