SweetSp3 1.2.5

dotnet add package SweetSp3 --version 1.2.5
                    
NuGet\Install-Package SweetSp3 -Version 1.2.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SweetSp3" Version="1.2.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SweetSp3" Version="1.2.5" />
                    
Directory.Packages.props
<PackageReference Include="SweetSp3" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SweetSp3 --version 1.2.5
                    
#r "nuget: SweetSp3, 1.2.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SweetSp3@1.2.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SweetSp3&version=1.2.5
                    
Install as a Cake Addin
#tool nuget:?package=SweetSp3&version=1.2.5
                    
Install as a Cake Tool

[HttpPost]
public async Task<IActionResult> Save(Customer customer, IFormFile? photo)
{
   using var transaction = await _context.Database.BeginTransactionAsync();
   try
   {
       if (photo != null && photo.Length > 0)
       {
           var uploadsFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/Uploads");

           if (!Directory.Exists(uploadsFolder))
           {
               Directory.CreateDirectory(uploadsFolder);
           }

           var fileName = Path.GetFileNameWithoutExtension(photo.FileName);
           var extension = Path.GetExtension(photo.FileName);
           var uniqueFileName = $"{fileName}_{DateTime.Now.Ticks.ToString()}{extension}";
           var filePath = Path.Combine(uploadsFolder, uniqueFileName);

           using var stream = new FileStream(filePath, FileMode.Create);
           await photo.CopyToAsync(stream);

           customer.Photo = uniqueFileName;
       }

       if (customer.CustomerId > 0)
       {
           //for edit
           var existingCustomer = await _context.Customers
                                              .Include(c => c.DeliveryAddresses)
                                              .FirstOrDefaultAsync(c => c.CustomerId == customer.CustomerId);

           if (existingCustomer != null)
           {
               existingCustomer.Name = customer.Name;
               existingCustomer.Email = customer.Email;
               existingCustomer.Phone = customer.Phone;
               existingCustomer.Address = customer.Address;
               existingCustomer.CustomerType = customer.CustomerType;
               existingCustomer.CreditDetails = customer.CreditDetails;
               existingCustomer.BusinessStart = customer.BusinessStart;
               existingCustomer.Photo = customer.Photo ?? existingCustomer.Photo;

               _context.DeliveryAddresses.RemoveRange(existingCustomer.DeliveryAddresses);
               foreach (var address in customer.DeliveryAddresses)
               {
                   existingCustomer.DeliveryAddresses.Add(new DeliveryAddress
                   {
                       Address = address.Address,
                       ContactPerson = address.ContactPerson,
                       Phone = address.Phone
                   });
               }
               _context.Customers.Update(existingCustomer);
           }
       }
       else
       {
           //for insert

           _context.Customers.Add(customer);
       }
       await _context.SaveChangesAsync();
       await transaction.CommitAsync();
       return RedirectToAction("Index");
   }
   catch (Exception ex)
   {
       await transaction.RollbackAsync();
       Console.WriteLine($"Error: {ex.Message}");
       return BadRequest("An error occured while saving data!!");
   }
}

[HttpPost]
public async Task<IActionResult> Delete(int id)
{
   var customer = await _context.Customers.FindAsync(id);
   if (customer == null)
   {
       return NotFound();
   }
   _context.Customers.Remove(customer);
   await _context.SaveChangesAsync();

   return Json(new
   {
       redirectTo = Url.Action("Index", "Customers")
   });
}

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.5 571 4/21/2025