Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *** Database table schema ***
- CREATE TABLE [Service](
- [Id] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
- [Name] [nvarchar](128) NULL,
- [Description] [nvarchar](1024) NULL,
- [ImageUrl] [nvarchar](128) NULL)
- GO
- SET IDENTITY_INSERT Service ON
- GO
- INSERT INTO Service (Id, [Name], [Description], ImageUrl)
- VALUES
- ( 1, 'Nesciunt Mete', 'Provident nihil minus qui consequatur non omnis maiores. Eos accusantium minus dolores iure perferendis.', '/images/services-1.jpg' ),
- ( 2, 'Eosle Commodi', 'Ut autem aut autem non a. Sint sint sit facilis nam iusto sint. Libero corrupti neque eum hic non ut nesciunt dolorem.', '/images/services-2.jpg' ),
- ( 3, 'Ledo Markt', 'Ut excepturi voluptatem nisi sed. Quidem fuga consequatur. Minus ea aut. Vel qui id voluptas adipisci eos earum corrupti.', '/images/services-3.jpg' ),
- ( 4, 'Asperiores Commodit', 'Non et temporibus minus omnis sed dolor esse consequatur. Cupiditate sed error ea fuga sit provident adipisci neque.', '/images/services-4.jpg' ),
- ( 5, 'Velit Doloremque', 'Cumque et suscipit saepe. Est maiores autem enim facilis ut aut ipsam corporis aut. Sed animi at autem alias eius labore.', '/images/services-5.jpg' ),
- ( 6, 'Dolori Architecto', 'Hic molestias ea quibusdam eos. Fugiat enim doloremque aut neque non et debitis iure. Corrupti recusandae ducimus enim.', '/images/services-6.jpg' )
- GO
- SET IDENTITY_INSERT Service OFF
- GO
- CREATE TABLE [dbo].[FormData](
- [Id] [int] IDENTITY(1,1) NOT NULL,
- [TestText] [nvarchar](128) NULL,
- [TestTel] [nvarchar](128) NULL,
- [TestUrl] [nvarchar](128) NULL,
- [TestEmail] [nvarchar](128) NULL,
- [TestNumber] [int] NULL,
- [TestPassword] [nvarchar](128) NULL,
- [TestCheckbox1] [bit] NULL,
- [TestCheckbox2] [bit] NULL,
- [TestRadio] [nvarchar](128) NULL,
- [TestColor] [nvarchar](128) NULL,
- [TestRange] [nvarchar](128) NULL,
- [TestDate1] [date] NULL,
- [TestDate2] [date] NULL,
- [TestDateTime] [datetime2](7) NULL,
- [TestMonth] [nvarchar](128) NULL,
- [TestTime] [nvarchar](128) NULL,
- [TestWeek] [nvarchar](128) NULL,
- [TestHidden] [nvarchar](128) NULL,
- PRIMARY KEY CLUSTERED ([Id] ASC)
- )
- GO
- CREATE TABLE [dbo].[FormDataFile](
- [Id] [int] NOT NULL,
- [FileContent] [nvarchar](max) NOT NULL,
- [Name] [nvarchar](128) NULL,
- PRIMARY KEY CLUSTERED ([Id] ASC)
- )
- GO
- CREATE TABLE [dbo].[FormDataImage](
- [Id] [int] IDENTITY(1,1) NOT NULL,
- [FormDataId] [int] NOT NULL,
- [Name] [nvarchar](128) NOT NULL,
- [Content] [nvarchar](max) NOT NULL,
- [ContentType] [nvarchar](128) NOT NULL,
- PRIMARY KEY CLUSTERED ([Id] ASC)
- )
- GO
- ALTER TABLE [dbo].[FormDataFile]
- ADD CONSTRAINT [FK_FormDataFile_FormData] FOREIGN KEY([Id])
- REFERENCES [dbo].[FormData] ([Id])
- GO
- ALTER TABLE [dbo].[FormDataImage]
- ADD CONSTRAINT [FK_FormDataImage_FormData] FOREIGN KEY([FormDataId])
- REFERENCES [dbo].[FormData] ([Id])
- GO
- *** Code for saving FormData to database ***
- var formData = new FormDatum
- {
- TestText = model.TestText,
- TestTel = model.TestTel,
- TestUrl = model.TestUrl,
- TestEmail = model.TestEmail,
- TestNumber = model.TestNumber,
- TestPassword = model.TestPassword,
- TestCheckbox1 = model.TestCheckbox1,
- TestCheckbox2 = model.TestCheckbox2,
- TestRadio = model.TestRadio,
- TestColor = model.TestColor,
- TestRange = model.TestRange,
- TestDate1 = model.TestDate1,
- TestDate2 = model.TestDate2,
- TestDateTime = model.TestDateTime,
- TestMonth = model.TestMonth,
- TestTime = model.TestTime,
- TestWeek = model.TestWeek,
- TestHidden = model.TestHidden,
- };
- _dbContext.FormData.Add(formData);
- using (var memoryStream = new MemoryStream())
- {
- model.TestFile.CopyTo(memoryStream);
- if (memoryStream.Length < 50 * 1024 * 1024)
- {
- var file = new FormDataFile()
- {
- IdNavigation = formData,
- FileContent = Convert.ToBase64String(memoryStream.ToArray())
- };
- _dbContext.FormDataFiles.Add(file);
- _dbContext.SaveChanges();
- }
- else
- {
- ModelState.AddModelError("File", "The file is too large.");
- }
- }
Add Comment
Please, Sign In to add comment