public void SetComplaint(SetComplaintViewModel model) { try { using (ApplicationDbContext db = new ApplicationDbContext()) { Data data = db.Datas.Find(model.DataId); ApplicationUser user = db.Users.Find(model.ApplicationUserId); if (data != null && user != null) { Evaluation _evaluation = db.Evaluations.Where(e => e.DataId == model.DataId && e.ApplicationUserId == model.ApplicationUserId && e.EvaluationType == EvaluationType.Complaint).FirstOrDefault(); if (_evaluation != null) { Result = new Result(ResultType.AlreadyTaken, "Şikayetiniz zaten bulunmaktadır."); return; } Evaluation evaluation = new Evaluation { EvaluationType = model.EvaluationType, DataId = model.DataId, ApplicationUserId = model.ApplicationUserId }; db.Evaluations.Add(evaluation); Complaint complaint = new Complaint { ComplaintType = model.ComplaintType, Evaluation = evaluation }; db.Complaints.Add(complaint); db.SaveChanges(); Result = new Result(ResultType.Success, "Şikayetiniz Tarafımıza iletilmiştir."); } else { Result = new Result(ResultType.NotFound, "Veri bulunamadı."); } } } catch (Exception) { Result = new Result(ResultType.Error, "Veritabanı ile bağlantı sağlanamadı."); return; } }
public void SetEvaluation(int id, string userName, string currentuserId, string dataType, EvaluationType evaluationType) { try { using (ApplicationDbContext db = new ApplicationDbContext()) { Evaluation evaluation = db.Evaluations.Where(e => e.EvaluationType != EvaluationType.Complaint && e.DataId == id && e.ApplicationUserId == currentuserId).FirstOrDefault(); Data data = db.Datas.Where(d => d.Id == id).FirstOrDefault(); ApplicationUser user = db.Users.Where(u => u.UserName == userName).FirstOrDefault(); if (evaluation == null) { if (data == null || user == null) { Result = new Result(ResultType.UnSuccessful, "Beklenmedik hata oluştu."); return; } data.Point += 5; if (dataType == "advise" && evaluationType == EvaluationType.Dislike) { } else { user.Point += 10; db.Entry(user).State = EntityState.Modified; if (user.Point > user.Rank.ParentRankPoint) { user.Rank = user.Rank.ParentRank; } } db.Evaluations.Add(new Evaluation { EvaluationType = evaluationType, DataId = data.Id, ApplicationUserId = currentuserId }); } else { if (evaluation.EvaluationType == evaluationType) { db.Evaluations.Remove(evaluation); data.Point -= 5; if (dataType == "advise" && evaluationType == EvaluationType.Dislike) { } else { user.Point -= 10; db.Entry(user).State = EntityState.Modified; Rank newrank = db.Ranks.Where(r => r.ParentRankId == user.Rank.Id).FirstOrDefault(); if (newrank != null) { if (user.Point < newrank.ParentRankPoint) { user.Rank = newrank; } } } } else { evaluation.EvaluationType = evaluationType; } } db.SaveChanges(); Result = new Result(ResultType.Success, "İşlem başarılı."); } } catch (Exception ex) { Result = new Result(ResultType.Error, "Veritabanı ile bağlantı sağlanamadı."); return; } }