Skip to content

Commit

Permalink
[Add] added some features backend
Browse files Browse the repository at this point in the history
  • Loading branch information
ghaleprachan committed Dec 19, 2020
1 parent 641c338 commit ce7cf94
Show file tree
Hide file tree
Showing 23 changed files with 323 additions and 11 deletions.
Binary file modified .vs/Roofcare APIs/DesignTimeBuild/.dtbcache.v2
Binary file not shown.
Binary file modified .vs/Roofcare APIs/v16/.suo
Binary file not shown.
6 changes: 6 additions & 0 deletions Controllers/OffersController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,11 @@ public IActionResult GetUserOffers(string username)
{
return Ok(offersService.GetUserOffers(username));
}

[HttpDelete]
public IActionResult Delete(int offerId)
{
return Ok(offersService.DeleteOffer(offerId));
}
}
}
3 changes: 2 additions & 1 deletion Controllers/ReviewController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Roofcare_APIs.Data;
using Roofcare_APIs.Models;
using Roofcare_APIs.Services;
using Roofcare_APIs.UserModels;
using System;
using System.Collections.Generic;
using System.Linq;
Expand All @@ -26,7 +27,7 @@ public IActionResult Get(string userId)
}

[HttpPost]
public IActionResult Post(Feedback reviewModel)
public IActionResult Post(AddFeedbackModel reviewModel)
{
return Ok(_reviewService.AddUserReview(reviewModel));
}
Expand Down
27 changes: 27 additions & 0 deletions Controllers/SearchController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Roofcare_APIs.Data;
using Roofcare_APIs.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Roofcare_APIs.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class SearchController : ControllerBase
{
private SearchService _searchService;
public SearchController(RoofCareDbContext dbContext)
{
_searchService = new SearchService(dbContext);
}
[HttpGet]
public IActionResult Get(string searchItem)
{
return Ok(_searchService.SearchItem(searchItem));
}
}
}
45 changes: 45 additions & 0 deletions Controllers/UserSavedController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Roofcare_APIs.Data;
using Roofcare_APIs.Services;
using Roofcare_APIs.UserModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Roofcare_APIs.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserSavedController : ControllerBase
{
private UserSavedService userSavedService;
public UserSavedController(RoofCareDbContext roofCareDbContext)
{
userSavedService = new UserSavedService(roofCareDbContext);
}
[HttpGet]
public IActionResult Get(int userId)
{
return Ok(userSavedService.GetSavedOffers(userId));
}
[HttpGet]
[Route("/GetId")]
public IActionResult GetId(int userId)
{
return Ok(userSavedService.GetId(userId));
}
[HttpPost]
public IActionResult Post(SaveOfferModel offerModel)
{
return Ok(userSavedService.SaveOffer(offerModel));
}

[HttpDelete]
public IActionResult Delete(int savedId)
{
return Ok(userSavedService.DeleteUserSaved(savedId));
}
}
}
3 changes: 2 additions & 1 deletion Helper/Responses.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@ namespace Roofcare_APIs.Helper
{
public class Responses
{
public static object AuthenticationResponse(bool Success, string Message, string Username, string FullName, string UserType, string UserImage)
public static object AuthenticationResponse(bool Success, int UserId, string Message, string Username, string FullName, string UserType, string UserImage)
{
return new AuthenticationModel()
{
Success = Success,
Message = Message,
UserId = UserId,
Username = Username,
FullName = FullName,
UserType = UserType,
Expand Down
28 changes: 27 additions & 1 deletion Services/OffersService.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Roofcare_APIs.Data;
using Roofcare_APIs.Models;
using System;
using System.Collections.Generic;
using System.Linq;
Expand Down Expand Up @@ -40,6 +41,31 @@ internal object GetAllOffers()
}
}

internal object DeleteOffer(int offerId)
{
try
{
using (_roofCareDbContext)
{
Offer oldOffer = _roofCareDbContext.Offers.Find(offerId);
if (oldOffer != null)
{
_roofCareDbContext.Remove(oldOffer);
_roofCareDbContext.SaveChanges();
return "Delete Successful";
}
else
{
return "Offer doesn't exists!";
}
}
}
catch (Exception ex)
{
return ex.Message;
}
}

internal object GetUserOffers(string username)
{
try
Expand All @@ -56,7 +82,7 @@ internal object GetUserOffers(string username)
AddedByUsername = offer.User.Username,
AddedByContact = offer.User.Contact,
AddedByImage = offer.User.UserImage
}).Where(u=>u.AddedByUsername == username).ToList();
}).Where(u => u.AddedByUsername == username).ToList();
return offers;
}
catch (Exception ex)
Expand Down
18 changes: 14 additions & 4 deletions Services/ReviewService.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Roofcare_APIs.Data;
using Roofcare_APIs.Models;
using Roofcare_APIs.UserModels;
using System;
using System.Collections.Generic;
using System.Linq;
Expand Down Expand Up @@ -45,20 +46,29 @@ internal object GetUserReview(string userId)
}
}

internal object AddUserReview(Feedback reviewModel)
internal object AddUserReview(AddFeedbackModel reviewModel)
{
try
{
using (_roofCareDbContext)
{
_roofCareDbContext.Feedbacks.Add(reviewModel);
Feedback feedback = new Feedback
{
FeedbackById = reviewModel.FeedbackById,
FeedbackToId = reviewModel.FeedbackToId,
Rating = reviewModel.Rating,
FeedbackText = reviewModel.FeedbackText,
FeedbackDate = DateTime.Now
};

_roofCareDbContext.Feedbacks.Add(feedback);
_roofCareDbContext.SaveChanges();
return "Success";
return "{ Success: true}";
}
}
catch (Exception ex)
{
return ex.Message;
return "Success:false";
}
}
}
Expand Down
46 changes: 46 additions & 0 deletions Services/SearchService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
using Roofcare_APIs.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Roofcare_APIs.Services
{
public class SearchService
{
private RoofCareDbContext _dbContext;
public SearchService(RoofCareDbContext dbContext)
{
_dbContext = dbContext;
}

internal object SearchItem(string searchItem)
{
try
{
using (_dbContext)
{
var searchResult = (from prop in _dbContext.UserProfessions
select new
{
prop.Profession.ProfessionId,
prop.Profession.ProfessionName,
prop.User.UserId,
prop.User.Username,
prop.User.FullName,
prop.User.Verified,
prop.User.UserType,
prop.User.UserImage,
}).Where(u => u.ProfessionName.StartsWith(searchItem))
.ToList();

return searchResult;
}
}
catch (Exception ex)
{
return ex.Message;
}
}
}
}
120 changes: 120 additions & 0 deletions Services/UserSavedService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
using Roofcare_APIs.Data;
using Roofcare_APIs.Models;
using Roofcare_APIs.UserModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Roofcare_APIs.Services
{
public class UserSavedService
{
private RoofCareDbContext _dbContext;
public UserSavedService(RoofCareDbContext roofCareDbContext)
{
_dbContext = roofCareDbContext;
}
internal object GetSavedOffers(int userId)
{
try
{
var savedOffers = (from u in _dbContext.Users
select new
{
u.UserId,
SavedOffer = (from o in u.SavedOffers
select new
{
o.SavedOfferId,
o.OfferId,
o.Offer.OfferDescription,
o.Offer.OfferImage,
o.Offer.PostedDate,
o.Offer.ValidDate,
OfferUserId = o.Offer.User.UserId,
OfferUsername = o.Offer.User.Username,
OfferFullName = o.Offer.User.FullName,
OfferPhoneNum = o.Offer.User.Contact,
OfferUserImage = o.Offer.User.UserImage,
}).ToList()

}).Where(us => us.UserId == userId).FirstOrDefault();
return savedOffers;

}
catch (Exception ex)
{
return "{Success: " + ex.Message + "}";
}
}

internal object DeleteUserSaved(int savedId)
{
try
{
SavedOffer old_saved = _dbContext.SavedOffers.Find(savedId);
if (old_saved != null)
{
_dbContext.Remove(old_saved);
_dbContext.SaveChanges();
return "Unsaved";
}
else
{
return "Offer Save not found";
}
}
catch (Exception ex)
{
return ex.Message;
}
}

internal object GetId(int userId)
{
try
{
var savedIds = (from u in _dbContext.Users
select new
{
u.UserId,
Saveds = (from s in u.SavedOffers
select new
{
s.SavedOfferId,
s.OfferId
}).ToList()
}).Where(ui => ui.UserId == userId).FirstOrDefault();
return savedIds;
}
catch (Exception ex)
{
return ex.Message;
}
}

internal object SaveOffer(SaveOfferModel offerModel)
{
try
{
using (_dbContext)
{
SavedOffer savedOffer = new SavedOffer
{
UserId = offerModel.UserId,
OfferId = offerModel.OfferId,
SaveDate = DateTime.Now
};
_dbContext.SavedOffers.Add(savedOffer);
_dbContext.SaveChanges();
return "{Success: true}";
}
}
catch (Exception ex)
{
return "{Success: " + ex.Message + "}";
}
}
}
}
Loading

0 comments on commit ce7cf94

Please sign in to comment.